diff --git a/package.json b/package.json index bc7cb1a..26ca19f 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,10 @@ "@ledgerhq/logs": "^6.11.0", "@rbnlffl/rollup-plugin-eslint": "^1.1.4", "@rollup/plugin-alias": "^3.1.2", - "@rollup/plugin-commonjs": "^17.1.0", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-inject": "^5.0.5", "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.1.1", + "@rollup/plugin-node-resolve": "^13.0.6", "@rollup/plugin-typescript": "^8.1.1", "@typescript-eslint/eslint-plugin": "^4.14.2", "@typescript-eslint/parser": "^4.14.2", @@ -47,10 +48,9 @@ "eslint": "^7.19.0", "eslint-config-airbnb-typescript": "^12.3.1", "eslint-plugin-import": "^2.22.1", - "rollup": "^2.38.5", + "rollup": "^2.68.0", "rollup-plugin-copy": "^3.3.0", "rollup-plugin-livereload": "^2.0.0", - "rollup-plugin-polyfill-node": "^0.5.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-sourcemaps": "^0.6.3", "tslib": "^2.1.0", @@ -69,6 +69,8 @@ "@rollup/plugin-virtual": "^2.0.3", "@types/ledgerhq__hw-transport-u2f": "^4.21.4", "@types/w3c-web-usb": "^1.0.6", - "bitcoinjs-lib": "^5.2.0" + "bitcoinjs-lib": "^5.2.0", + "buffer": "^6.0.3", + "readable-stream": "^4.4.2" } } diff --git a/rollup.config.js b/rollup.config.js index 8c354c1..5e2661f 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,17 +3,17 @@ import path from 'path'; import { walk } from 'estree-walker'; import MagicString from 'magic-string'; -import typescript from '@rollup/plugin-typescript'; +import inject from '@rollup/plugin-inject'; import alias from '@rollup/plugin-alias'; import virtual from '@rollup/plugin-virtual'; import resolve from '@rollup/plugin-node-resolve'; +import eslint from '@rbnlffl/rollup-plugin-eslint'; +import typescript from '@rollup/plugin-typescript'; +import sourcemaps from 'rollup-plugin-sourcemaps'; import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; -import sourcemaps from 'rollup-plugin-sourcemaps'; -import eslint from '@rbnlffl/rollup-plugin-eslint'; // demo page specific imports -import polyfillNode from 'rollup-plugin-polyfill-node'; import copy from 'rollup-plugin-copy'; import serve from 'rollup-plugin-serve'; import livereload from 'rollup-plugin-livereload'; @@ -126,35 +126,32 @@ export default (commandLineArgs) => { })), preserveEntrySignatures: 'allow-extension', // avoid rollup's additional facade chunk plugins: [ - // First run plugins that map imports to the actual imported files, e.g. aliased imports or browser versions - // of packages, such that subsequent plugins operate on the right files. + // First run plugins that map imports to the actual imported files, e.g. aliased and shimmed imports or + // browser versions of packages, such that subsequent plugins operate on the right files. Especially, we + // polyfill node builtins via aliased and virtual packages and later inject their node globals via the + // inject plugin. alias({ entries: { - // replace readable-stream imported by @ledgerhq/hw-app-btc/src/hashPublicKey > ripemd160 > - // hash-base by stream which gets polyfilled by rollup-plugin-polyfill-node. Note that stream and - // readable-stream are largely compatible and effectively the same code. However, the stream - // polyfill used by rollup-plugin-polyfill-node is an older version which has less problems with - // circular dependencies. The circular dependencies are currently being resolved in readable-stream - // though and once merged (see https://github.com/nodejs/readable-stream/issues/348), this alias - // should be removed or even turned around. Note that without the replacement, the stream polyfill - // and readable-stream are both bundled, which is not desirable. - 'readable-stream': 'stream', - // shim unnecessary axios for @ledgerhq/hw-transport-http + // Polyfill node's builtin stream module via readable-stream, which is essentially node's stream + // put into an npm package. + stream: 'readable-stream', + // Shim unnecessary axios for @ledgerhq/hw-transport-http. axios: '../../../../src/lib/axios-shim.ts', }, }), virtual({ - // don't bundle unnecessary WebSocket polyfill + // Don't bundle unnecessary WebSocket polyfill. ws: 'export default {};', + // Polyfill node's global and process.env.NODE_ENV. + global: 'export default window;', + process: `export default { env: { NODE_ENV: ${isProduction ? '"production"' : '"development"'} } };`, }), resolve({ browser: true, // use browser versions of packages if defined in their package.json - preferBuiltins: false, // builtins are handled by polyfillNode + preferBuiltins: false, // process node builtins to use polyfill packages buffer, readable-stream, etc. }), // Have eslint high up in the hierarchy to lint the original files. eslint({ - // TODO remove once https://github.com/snowpackjs/rollup-plugin-polyfill-node/pull/3 is merged - filterExclude: ['node_modules/**', /^polyfill-node:/], // ignore polyfill-node's virtual files throwOnError: isProduction, }), // Check types and transpile ts to js. Note that ts does only transpile and not bundle imports. @@ -167,22 +164,18 @@ export default (commandLineArgs) => { rootDir: 'src', noEmitOnError: isProduction, }), - // Read code including sourcemaps. Has to happen after ts as ts files should be loaded by typescript plugin - // and the sourcemaps plugin can't parse ts files. - sourcemaps({ - // TODO remove once https://github.com/snowpackjs/rollup-plugin-polyfill-node/pull/3 is merged - exclude: [/^polyfill-node:/], - }), + // Read code including sourcemaps. Has to happen after typescript as ts files should be loaded by typescript + // plugin and the sourcemaps plugin can't parse ts files. + sourcemaps(), // Plugins for processing dependencies. commonjs(), json({ // required for import of bitcoin-ops/index.json imported by bitcoinjs-lib compact: true, }), - polyfillNode({ - include: [ - 'src/**/*', - 'node_modules/**/*.js', - ], + inject({ + Buffer: ['buffer', 'Buffer'], // add "import { Buffer } from 'buffer'" when node's Buffer global is used + global: 'global', // add "import global from 'global'" when node's global variable 'global' is used + process: 'process', // add "import process from 'process'" when node's global variable 'process' is used }), // Last steps in output generation. hoistDynamicImportDependencies(), @@ -235,53 +228,53 @@ export default (commandLineArgs) => { sourcemapPathTransform, }, plugins: [ - // typescript needs the import as specified to find the .d.ts file but for actual import we need .es.js file + // First run plugins that map imports to the actual imported files, e.g. aliased and shimmed imports or + // browser versions of packages, such that subsequent plugins operate on the right files. Especially, we + // polyfill node builtins via aliased and virtual packages and later inject their node globals via the + // inject plugin. alias({ entries: { + // typescript needs the imports as specified to find the .d.ts files but for actual import we need + // the .es.js files. '../../dist/low-level-api/low-level-api': '../low-level-api/low-level-api.es.js', '../../dist/high-level-api/ledger-api': '../high-level-api/ledger-api.es.js', - // shim unnecessary axios for @ledgerhq/hw-transport-http + // Shim unnecessary axios for @ledgerhq/hw-transport-http. axios: '../../../../src/lib/axios-shim.ts', - // replace readable-stream imported by @ledgerhq/hw-app-btc/src/hashPublicKey > ripemd160 > - // hash-base by stream which gets polyfilled by rollup-plugin-polyfill-node. Note that stream and - // readable-stream are largely compatible and effectively the same code. However, the stream - // polyfill used by rollup-plugin-polyfill-node is an older version which has less problems with - // circular dependencies. The circular dependencies are currently being resolved in readable-stream - // though and once merged (see https://github.com/nodejs/readable-stream/issues/348), this alias - // should be removed or even turned around. Note that without the replacement, the stream polyfill - // and readable-stream are both bundled, which is not desirable. - 'readable-stream': 'stream', + // Polyfill node's builtin stream module via readable-stream, which is essentially node's stream + // put into an npm package. + stream: 'readable-stream', }, }), virtual({ - // don't bundle unnecessary WebSocket polyfill + // Don't bundle unnecessary WebSocket polyfill. ws: 'export default {};', + // Polyfill node's global and process.env.NODE_ENV. + global: 'export default window;', + process: `export default { env: { NODE_ENV: ${isProduction ? '"production"' : '"development"'} } };`, }), resolve({ browser: true, // use browser versions of packages if defined in their package.json - preferBuiltins: false, // builtins are handled by polyfillNode + preferBuiltins: false, // process node builtins to use polyfill packages buffer, readable-stream, etc. }), // Have eslint high up in the hierarchy to lint the original files. eslint({ - // TODO remove once https://github.com/snowpackjs/rollup-plugin-polyfill-node/pull/3 is merged - filterExclude: ['node_modules/**', /^polyfill-node:/], // ignore polyfill-node's virtual files throwOnError: isProduction, }), + // Check types and transpile ts to js. Note that ts does only transpile and not bundle imports. typescript({ include: ['src/demo/**', 'src/lib/**'], noEmitOnError: isProduction, }), - sourcemaps({ - // TODO remove once https://github.com/snowpackjs/rollup-plugin-polyfill-node/pull/3 is merged - exclude: [/^polyfill-node:/], - }), + // Read code including sourcemaps. Has to happen after typescript as ts files should be loaded by typescript + // plugin and the sourcemaps plugin can't parse ts files. + sourcemaps(), + // Plugins for processing dependencies. commonjs(), json(), // required for import of secp256k1/lib/messages.json in secp256k1 imported by bitcoinjs-message - polyfillNode({ - include: [ - 'src/**/*', - 'node_modules/**/*.js', - ], + inject({ + Buffer: ['buffer', 'Buffer'], // add "import { Buffer } from 'buffer'" when node's Buffer global is used + global: 'global', // add "import global from 'global'" when node's global variable 'global' is used + process: 'process', // add "import process from 'process'" when node's global variable 'process' is used }), copy({ targets: [{ diff --git a/yarn.lock b/yarn.lock index 8f6871e..91ac49c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,6 +39,11 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@ledgerhq/devices@^5.34.0", "@ledgerhq/devices@^5.41.0": version "5.41.0" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.41.0.tgz#e69d6aa4379a30f60cc8109f9855d902eb0d2f27" @@ -229,10 +234,10 @@ dependencies: slash "^3.0.0" -"@rollup/plugin-commonjs@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" - integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== +"@rollup/plugin-commonjs@^22.0.0": + version "22.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -242,14 +247,14 @@ magic-string "^0.25.7" resolve "^1.17.0" -"@rollup/plugin-inject@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-4.0.2.tgz#55b21bb244a07675f7fdde577db929c82fc17395" - integrity sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw== +"@rollup/plugin-inject@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== dependencies: - "@rollup/pluginutils" "^3.0.4" - estree-walker "^1.0.1" - magic-string "^0.25.5" + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.30.3" "@rollup/plugin-json@^4.1.0": version "4.1.0" @@ -258,15 +263,15 @@ dependencies: "@rollup/pluginutils" "^3.0.8" -"@rollup/plugin-node-resolve@^11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz#47bc34252914794a1b06fb50371d7520a03f91f3" - integrity sha512-zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg== +"@rollup/plugin-node-resolve@^13.0.6": + version "13.3.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz#da1c5c5ce8316cef96a2f823d111c1e4e498801c" + integrity sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw== dependencies: "@rollup/pluginutils" "^3.1.0" "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" deepmerge "^4.2.2" + is-builtin-module "^3.1.0" is-module "^1.0.0" resolve "^1.19.0" @@ -291,7 +296,7 @@ estree-walker "^2.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^3.0.4", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== @@ -300,6 +305,15 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^5.0.1": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + "@types/estree@*": version "0.0.46" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" @@ -310,6 +324,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/fs-extra@^8.0.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.1.tgz#1e49f22d09aa46e19b51c0b013cb63d0d923a068" @@ -448,6 +467,13 @@ "@typescript-eslint/types" "4.14.2" eslint-visitor-keys "^2.0.0" +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -576,6 +602,11 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + bech32@^1.1.2, bech32@^1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -724,10 +755,18 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -1169,7 +1208,7 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.1: +estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -1179,6 +1218,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + events@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" @@ -1294,6 +1338,11 @@ fsevents@~2.3.1: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -1423,6 +1472,11 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -1478,6 +1532,13 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-builtin-module@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" @@ -1671,13 +1732,20 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -magic-string@^0.25.5, magic-string@^0.25.7: +magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" +magic-string@^0.30.3: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -1906,6 +1974,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -1923,6 +1996,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -1973,6 +2051,17 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdirp@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" @@ -2041,13 +2130,6 @@ rollup-plugin-livereload@^2.0.0: dependencies: livereload "^0.9.1" -rollup-plugin-polyfill-node@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill-node/-/rollup-plugin-polyfill-node-0.5.0.tgz#afa87f9105233963b89b0f74a2baaac53ab8a232" - integrity sha512-CYPf4vKeZG5w/Ut7TR1lEMKiBT2pHfj1RLnk92whXKFtT8IGkm+TydwgDNpgTXBCI4V528YijyFVMz4dKcR3AA== - dependencies: - "@rollup/plugin-inject" "^4.0.0" - rollup-plugin-serve@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/rollup-plugin-serve/-/rollup-plugin-serve-1.1.0.tgz#0654a57021a21b903340c69940f7463706e8288d" @@ -2064,12 +2146,12 @@ rollup-plugin-sourcemaps@^0.6.3: "@rollup/pluginutils" "^3.0.9" source-map-resolve "^0.6.0" -rollup@^2.38.5: - version "2.38.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.5.tgz#be41ad4fe0c103a8794377afceb5f22b8f603d6a" - integrity sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ== +rollup@^2.68.0: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" run-parallel@^1.1.9: version "1.1.10" @@ -2231,7 +2313,7 @@ string.prototype.trimstart@^1.0.3: call-bind "^1.0.0" define-properties "^1.1.3" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==