From 76933abc4dce94b419e2c622343c4a760c7fdebc Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 19 Nov 2023 23:58:31 +0100 Subject: [PATCH] rollup: replace rollup-plugin-polyfill-node by individual polyfills Polyfill node builtins manually via individual npm packages and manual shims, to be able to update them manually to maintained versions. Notably, the buffer polyfill has been updated this way, for compatibility with the newest @ledgerhq/hw-app-btc, which uses readUint8() in BtcNew.signMessage without specifying an offset, which is not supported yet by the polyfill bundlded with rollup-plugin-polyfill-node. In order to properly handle the circular dependencies of the now updated readable-stream package, @rollup/plugin-commonjs had to be updated to at least version 22.0.0 to include https://github.com/rollup/plugins/pull/1038 to fix https://github.com/rollup/rollup/issues/1507. Additionally, rollup and @rollup/plugin-node-resolve had been updated to the minimum version compatible with the updated @rollup/plugin-commonjs. --- package.json | 12 ++-- rollup.config.js | 103 +++++++++++++++---------------- yarn.lock | 154 ++++++++++++++++++++++++++++++++++++----------- 3 files changed, 173 insertions(+), 96 deletions(-) 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==