diff --git a/sdk/typescript/packages/nodejs-client/internal/index.mjs b/sdk/typescript/packages/nodejs-client/internal/index.mjs index ed637069424..28c214a8d08 100644 --- a/sdk/typescript/packages/nodejs-client/internal/index.mjs +++ b/sdk/typescript/packages/nodejs-client/internal/index.mjs @@ -1,24 +1,28 @@ -import { createNymMixnetClient } from '../dist/cjs-full-fat/index.cjs'; - -debugger; +import { createNymMixnetClient } from '../dist/cjs/index.js'; const nym = await createNymMixnetClient(); -const nymApiUrl = 'https://validator.nymtech.net/api'; -// show message payload content when received -nym.events.subscribeToTextMessageReceivedEvent((e) => { - console.log('Got a message: ', e.args.payload); +nym.events.subscribeToLoaded((e) => { + console.log('Loaded'); +}); + +nym.events.subscribeToTextMessageReceivedEvent(async (e) => { + console.log(e.args.payload); + if (e.args.payload === 'Hello') await nym.client.stop(); }); +const nymApiUrl = 'https://validator.nymtech.net/api/'; + // start the client and connect to a gateway await nym.client.start({ - clientId: 'My awesome client', nymApiUrl, + clientId: 'my-client', }); -// send a message to yourself -const payload = 'Hello mixnet'; -const recipient = await nym.client.selfAddress(); -console.log(recipient) -debugger; -await nym.client.send({ payload, recipient }); +nym.events.subscribeToConnected(async (e) => { + console.log('Connected'); + // send a message to yourself + const message = 'Hello'; + const recipient = await nym.client.selfAddress(); + await nym.client.send({ payload: { message, mimeType: 'text/plain' }, recipient }); +}); diff --git a/sdk/typescript/packages/nodejs-client/package.json b/sdk/typescript/packages/nodejs-client/package.json index fa92d27d103..c0ac052105d 100644 --- a/sdk/typescript/packages/nodejs-client/package.json +++ b/sdk/typescript/packages/nodejs-client/package.json @@ -27,8 +27,11 @@ "tsc": "tsc --noEmit true" }, "dependencies": { - "@nymproject/nym-client-wasm-node": ">=1.2.0-rc.10 || ^1", - "comlink": "^4.3.1" + "@nymproject/nym-client-wasm-node": "^1.2.0", + "comlink": "^4.3.1", + "fake-indexeddb": "^4.0.2", + "rollup-plugin-polyfill": "^4.2.0", + "ws": "^8.14.2" }, "devDependencies": { "@babel/core": "^7.15.0", @@ -68,6 +71,7 @@ "rimraf": "^3.0.2", "rollup": "^3.9.1", "rollup-plugin-base64": "^1.0.1", + "rollup-plugin-modify": "^3.0.0", "rollup-plugin-web-worker-loader": "^1.6.1", "ts-jest": "^29.1.0", "ts-loader": "^9.4.2", @@ -75,6 +79,5 @@ "typescript": "^4.8.4" }, "private": false, - "type": "module", "types": "./dist/index.d.ts" } diff --git a/sdk/typescript/packages/nodejs-client/rollup/cjs.mjs b/sdk/typescript/packages/nodejs-client/rollup/cjs.mjs index 8707580ca9f..9e61304ab5c 100644 --- a/sdk/typescript/packages/nodejs-client/rollup/cjs.mjs +++ b/sdk/typescript/packages/nodejs-client/rollup/cjs.mjs @@ -17,7 +17,7 @@ export const getConfig = (opts) => ({ format: 'cjs', }, plugins: [ - webWorkerLoader({ targetPlatform: 'node', inline: opts.inline }), + webWorkerLoader({ targetPlatform: 'node', inline: opts.inline, external: [], loadPath: "../dist/cjs/" }), resolve({ browser: false, extensions: ['.js', '.ts'] }), wasm({ maxFileSize: 10000000, targetEnv: 'node' }), typescript({ diff --git a/sdk/typescript/packages/nodejs-client/rollup/worker.mjs b/sdk/typescript/packages/nodejs-client/rollup/worker.mjs index 0bc3355cb7a..746bd461bed 100644 --- a/sdk/typescript/packages/nodejs-client/rollup/worker.mjs +++ b/sdk/typescript/packages/nodejs-client/rollup/worker.mjs @@ -1,11 +1,8 @@ import typescript from '@rollup/plugin-typescript'; import resolve from '@rollup/plugin-node-resolve'; import { wasm } from '@rollup/plugin-wasm'; -import replace from '@rollup/plugin-replace'; import commonjs from '@rollup/plugin-commonjs'; -import path from 'path'; - -console.log(process.cwd()); +import modify from 'rollup-plugin-modify'; /** * Configure worker output @@ -15,24 +12,32 @@ console.log(process.cwd()); */ export const getConfig = (opts) => ({ input: 'src/worker.ts', - external: ['util'], output: { - dir: 'dist', + dir: 'dist/cjs', format: 'cjs', + manualChunks: { + ws: ["ws"], + } }, + external: ['util', "fake-indexeddb"], plugins: [ resolve({ - rootDir: process.cwd(), browser: false, preferBuiltins: true, extensions: ['.js', '.ts'], }), commonjs(), - // this is some nasty monkey patching that removes the WASM URL (because it is handled by the `wasm` plugin) - replace({ - values: { "input = new URL('nym_client_wasm_bg.wasm', import.meta.url);": 'input = undefined;' }, - delimiters: ['', ''], - preventAssignment: true, + // TODO: One of the wasm functions calls `new WebSocket` at one point, which we aren't able to polyfill correctly yet. + modify({ find: 'const ret = new WebSocket(getStringFromWasm0(arg0, arg1));', replace: 'var WebSocket = require("ws"); const ret = new WebSocket(getStringFromWasm0(arg0, arg1));' }), + + // TODO: `getObject(...).require` seems to generate a warning on Webpack but with Rollup we get a panick since it can't require. + // By hard coding the require here, we can workaround that. + // Reference: https://github.com/rust-random/getrandom/issues/224 + modify({ find: 'getObject(arg0).require(getStringFromWasm0(arg1, arg2));', replace: 'require("crypto");' }), + // TODO: The NodeJS setTimeout returns a Timeout object instead of a timeout id as the web api one does, check how we could polyfill this. + modify({ + find: /const ret = getObject\(arg0\).setTimeout\(getObject\(arg1\), arg2\);\n\s*?_assertNum\((.*?)\)/, + replace: (match) => match.replace('_assertNum(ret)', '// _assertNum(ret)'), }), opts?.inlineWasm === true ? wasm({ maxFileSize: 10_000_000, targetEnv: 'node' }) // force the wasm plugin to embed the wasm bundle - this means no downstream bundlers have to worry about handling it @@ -42,9 +47,15 @@ export const getConfig = (opts) => ({ }), typescript({ compilerOptions: { + outDir: 'dist/cjs', declaration: false, target: 'es5', + }, }), + // modify({ + // find: " var worker_threads = require('worker_threads');", + // replace: " var worker_threads = require('worker_threads');\nvar WebSocket = require('ws');", + // }), ], }); diff --git a/sdk/typescript/packages/nodejs-client/scripts/build.sh b/sdk/typescript/packages/nodejs-client/scripts/build.sh index dbe575488c1..386bcdc6d19 100755 --- a/sdk/typescript/packages/nodejs-client/scripts/build.sh +++ b/sdk/typescript/packages/nodejs-client/scripts/build.sh @@ -6,13 +6,53 @@ set -o pipefail rm -rf dist || true +#------------------------------------------------------- +# WEB WORKER (mix-fetch WASM) +#------------------------------------------------------- +# The web worker needs to be bundled because the WASM bundle needs to be loaded synchronously and all dependencies +# must be included in the worker script (because it is not loaded as an ES Module) + +# build the worker +rollup -c rollup-worker.config.mjs + +# move it next to the Typescript `src/index.ts` so it can be inlined by rollup +rm -f src/*.js +mv dist/cjs/worker.js src/worker.js + +# move WASM files out of build area +# mkdir -p dist/worker +# mv dist/*.wasm dist/worker + +#------------------------------------------------------- +# COMMON JS +#------------------------------------------------------- +# Some old build systems cannot fully handle ESM or ES2021, so build +# a CommonJS bundle targeting ES5 + +# build the SDK as a CommonJS bundle +rollup -c rollup-cjs.config.mjs + +# move WASM files into place +cp src/*.wasm dist/cjs + +# move WASM files into place +# cp dist/worker/*.wasm dist/cjs +# cp dist/worker/*.js dist/cjs + #------------------------------------------------------- # WEB WORKER (full-fat) #------------------------------------------------------- # build the worker rollup -c rollup-worker-full-fat.config.mjs -mv dist/worker.js src/worker.js + +# move it next to the Typescript `src/index.ts` so it can be inlined by rollup +# rm -f src/*.js +# rm -f src/*.wasm +mv dist/cjs/worker.js src/worker.js + +# move WASM files out of build area +# mkdir -p dist/worker #------------------------------------------------------- # COMMON JS (full-fat) @@ -22,17 +62,15 @@ mv dist/worker.js src/worker.js # build the SDK as a CommonJS bundle (with worker inlined as a blob) rollup -c rollup-cjs-full-fat.config.mjs -mv dist/cjs-full-fat/index.js dist/cjs-full-fat/index.cjs #------------------------------------------------------- # CLEAN UP #------------------------------------------------------- -# rm -rf dist/cjs/worker -# rm -rf dist/cjs-full-fat/worker +rm -rf dist/worker # copy README # cp README.md dist/cjs/README.md -cp README.md dist/cjs-full-fat/README.md +# cp README.md dist/cjs-full-fat/README.md diff --git a/sdk/typescript/packages/nodejs-client/src/index.ts b/sdk/typescript/packages/nodejs-client/src/index.ts index 9b9c61fbea4..c6b8efef957 100644 --- a/sdk/typescript/packages/nodejs-client/src/index.ts +++ b/sdk/typescript/packages/nodejs-client/src/index.ts @@ -70,10 +70,10 @@ export const createNymMixnetClient = async (options?: NymMixnetClientOptions): P // set any options if (options?.autoConvertStringMimeTypes) { - await client.setTextMimeTypes(options.autoConvertStringMimeTypes); + client.setTextMimeTypes(options.autoConvertStringMimeTypes); } else { // set some sensible defaults for text mime types - await client.setTextMimeTypes([MimeTypes.ApplicationJson, MimeTypes.TextPlain]); + client.setTextMimeTypes([MimeTypes.ApplicationJson, MimeTypes.TextPlain]); } // pass the client interop and subscription manage back to the caller diff --git a/sdk/typescript/packages/nodejs-client/internal/nym_client_wasm_bg.wasm b/sdk/typescript/packages/nodejs-client/src/nym_client_wasm_bg.wasm similarity index 100% rename from sdk/typescript/packages/nodejs-client/internal/nym_client_wasm_bg.wasm rename to sdk/typescript/packages/nodejs-client/src/nym_client_wasm_bg.wasm diff --git a/sdk/typescript/packages/nodejs-client/src/worker.ts b/sdk/typescript/packages/nodejs-client/src/worker.ts index 455f3edc3e1..677cd52ccf1 100644 --- a/sdk/typescript/packages/nodejs-client/src/worker.ts +++ b/sdk/typescript/packages/nodejs-client/src/worker.ts @@ -1,9 +1,23 @@ -/** - * NB: URL syntax is used so that bundlers like webpack can load this package's code when inside the final bundle - * the files from ../../../../nym-client-wasm will be copied into the dist directory of this package, so all import - * paths are _relative to the output directory_ of this package (`dist`) - don't get confused! - */ +// eslint-disable-next-line import/first import * as Comlink from 'comlink'; +import * as crypto from 'node:crypto'; +import * as fs from 'node:fs'; +import * as process from 'node:process'; +import { WebSocket } from 'ws'; + +// polyfill setup +const globalVar = + // eslint-disable-next-line @typescript-eslint/no-implied-eval, no-restricted-globals, no-nested-ternary + typeof WorkerGlobalScope !== 'undefined' ? self : typeof global !== 'undefined' ? global : Function('return this;')(); + +globalVar.WebSocket = WebSocket; +globalVar.indexedDB = indexedDB; +globalVar.fs = fs; +globalVar.process = process; +globalVar.performance = performance; +globalVar.TextEncoder = TextEncoder; +globalVar.TextDecoder = TextDecoder; +globalVar.crypto = crypto; import { ClientConfig, @@ -14,8 +28,8 @@ import { parse_utf8_string, utf8_string_to_byte_array, } from '@nymproject/nym-client-wasm-node'; - -import nodeEndpoint from './node-adapter'; +import { indexedDB } from 'fake-indexeddb'; +import { parentPort } from 'worker_threads'; import type { BinaryMessageReceivedEvent, @@ -27,12 +41,10 @@ import type { RawMessageReceivedEvent, StringMessageReceivedEvent, } from './types'; + +import nodeEndpoint from './node-adapter'; import { EventKinds, MimeTypes } from './types'; -import { parentPort } from 'worker_threads'; -// web workers are only allowed to load external scripts as the load -// importScripts(new URL('./nym_client_wasm.js', import.meta.url)); -// eslint-disable-next-line import/extensions console.log('[Nym WASM client] Starting Nym WASM web worker...'); @@ -42,13 +54,7 @@ console.log('[Nym WASM client] Starting Nym WASM web worker...'); * see https://nodejs.org/api/worker_threads.html#workerparentport */ // eslint-disable-next-line no-restricted-globals -const postMessageWithType = (event: E) => { - if (parentPort) { - return parentPort.postMessage(event); - } else { - console.error('Not on worker thread'); - } -}; +const postMessageWithType = (event: E) => parentPort?.postMessage(event); /** * This class holds the state of the Nym WASM client and provides any interop needed. @@ -147,8 +153,6 @@ class ClientWrapper { }; } -// sets up better stack traces in case of in-rust panics -// importResult.set_panic_hook(); // this wrapper handles any state that the wasm-pack interop needs, e.g. holding an instance of the instantiated WASM code const wrapper = new ClientWrapper(); diff --git a/sdk/typescript/packages/nodejs-client/tsconfig.json b/sdk/typescript/packages/nodejs-client/tsconfig.json index d613d363a3c..8b21bfbf8db 100644 --- a/sdk/typescript/packages/nodejs-client/tsconfig.json +++ b/sdk/typescript/packages/nodejs-client/tsconfig.json @@ -3,9 +3,6 @@ "compilerOptions": { "lib": [ "es2021", - "dom", - "dom.iterable", - "esnext", "webworker" ], "outDir": "./dist/", @@ -16,6 +13,7 @@ "moduleResolution": "node", "skipLibCheck": true, "skipDefaultLibCheck": true, + "allowSyntheticDefaultImports": true, "declaration": true, "baseUrl": "." }, @@ -23,20 +21,10 @@ "src/**/*.ts" ], "exclude": [ - "jest.config.js", - "webpack.config.js", - "webpack.prod.js", - "webpack.common.js", "node_modules", "**/node_modules", "dist", "**/dist", "scripts", - "jest", - "__tests__", - "**/__tests__", - "__jest__", - "**/__jest__", - "config/*", ] } diff --git a/yarn.lock b/yarn.lock index 5d54fef65d2..4b192354d85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2273,21 +2273,6 @@ yargs "16.2.0" yargs-parser "20.2.4" -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" - integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - "@mdx-js/loader@^2.1.5": version "2.3.0" resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-2.3.0.tgz#56a6b07eb0027b6407e953a97c52bd8619601161" @@ -2703,15 +2688,10 @@ resolved "https://registry.yarnpkg.com/@nymproject/mix-fetch-wasm/-/mix-fetch-wasm-1.2.0-rc.10.tgz#c9e42d04f67b630d5c751dbdc28b539ddc68629e" integrity sha512-Mz2+HKOa/Yflo46XvTbxz2fD+8kw/GHhH/dWVHKNXaGVQeRnRxSApEnf+WzssaOkDgAn0j3ty7o98UJ3928rsA== -"@nymproject/nym-client-wasm-node@@nymproject/nym-client-wasm-node": - version "1.2.0-rc.10" - resolved "https://registry.yarnpkg.com/@nymproject/nym-client-wasm-node/-/nym-client-wasm-node-1.2.0-rc.10.tgz#90ab7a446497b401d786c22cca57809d145f8644" - integrity sha512-XlpV62Krhs8e8uhazaj69Y7sng9UVBqt+eWiTlzvKyY0NY6GI/KjiM4ya5udiT/B0E13lT6WcCDepprDvkJmtA== - -"@nymproject/nym-client-wasm@>=1.2.0-rc.7 || ^1": - version "1.2.0-rc.10" - resolved "https://registry.yarnpkg.com/@nymproject/nym-client-wasm/-/nym-client-wasm-1.2.0-rc.10.tgz#9964d2c0ab9147c2437e7d44c23c4915752effc6" - integrity sha512-h/QOg0vkTMORiV3yV2IcO5zzK9LQubDq8JFf9CfnoJ/1iWmVJcfTIj/GiMs9vZIwn3fKRgdhfLujvuwzuUp2Zw== +"@nymproject/nym-client-wasm-node@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@nymproject/nym-client-wasm-node/-/nym-client-wasm-node-1.2.0.tgz#46abe6b7535e80107d837bc6cc47edc1734aa773" + integrity sha512-L2hvMuudTQJgS/ZGGCSCD2oroccf7jWYXrq/E0Qqu0IxLlyjnTJ1xWWwXzUuwzBs+V5YZb0VIdB0kAovGLA+VA== "@nymproject/nym-node-tester-wasm@>=1.2.0-rc.7 || ^1": version "1.2.0-rc.10" @@ -5642,7 +5622,7 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: +agentkeepalive@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== @@ -5868,11 +5848,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -argsarray@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb" - integrity sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg== - aria-query@5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" @@ -6375,11 +6350,6 @@ base64-arraybuffer-es6@^0.7.0: resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-0.7.0.tgz#dbe1e6c87b1bf1ca2875904461a7de40f21abc86" integrity sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw== -base64-arraybuffer-es6@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/base64-arraybuffer-es6/-/base64-arraybuffer-es6-3.0.1.tgz#2ad032cc4e378de6bbd7aa1b29f695b277dc4474" - integrity sha512-bOxevePlYA8Kba1xVnrQSoktrt12UkP6Jhl2wO+GCGbKAkF4fpDxyg7xRFffZYC0kP2RgMPOSRbzmdHReWnMyg== - base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -6790,7 +6760,7 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.5, cacache@^15.2.0: +cacache@^15.0.5: version "15.3.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== @@ -6925,15 +6895,6 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001517: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz#f24a9b2a6d39630bac5c132b5dff89b39a12e7dd" integrity sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q== -canvas@^2.11.2: - version "2.11.2" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" - integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - nan "^2.17.0" - simple-get "^3.0.3" - capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -8232,13 +8193,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -8755,7 +8709,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.12, encoding@^0.1.13: +encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -9453,11 +9407,6 @@ events@^3.0.0, events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventtargeter@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/eventtargeter/-/eventtargeter-0.9.0.tgz#2c8b873dce173a831779e5f9f5a07facda61e7cd" - integrity sha512-40f2UpTpS7v2GnXWsMpEUkKoMOlgTDrijhCx4Hq7zvsBhLihA7dn0Ayicb4FO/MOIzD5mLHsLK7/NYqx39LqaA== - evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -10928,7 +10877,7 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -11104,11 +11053,6 @@ ignore@^5.0.4, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -immediate@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -11147,18 +11091,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexeddbshim@^13.0.0-pre.1: - version "13.0.0-pre.1" - resolved "https://registry.yarnpkg.com/indexeddbshim/-/indexeddbshim-13.0.0-pre.1.tgz#445a1ee71f57f6d8b20ada214e197b3e2a55582b" - integrity sha512-Tl0FAiQvp0zdTiWZf267d6MN0cFk64z8oa39zpexIkX3Nk/AY5iYhPqvpQcGOxXJWdY/IWOyZFZb4K2qhRtxng== - dependencies: - canvas "^2.11.2" - eventtargeter "0.9.0" - sync-promise-expanded "^1.0.0" - typeson "9.0.2" - typeson-registry "7.2.1" - websql-configurable "^3.0.3" - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -13213,6 +13145,13 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== +magic-string@0.25.2: + version "0.25.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" + integrity sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg== + dependencies: + sourcemap-codec "^1.4.4" + magic-string@^0.25.3: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -13282,28 +13221,6 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, socks-proxy-agent "^7.0.0" ssri "^10.0.0" -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -13994,11 +13911,6 @@ mimic-fn@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -14096,17 +14008,6 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - minipass-fetch@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" @@ -14147,7 +14048,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@^3.0.0, minipass@^3.1.1: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -14169,7 +14070,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== -minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -14323,7 +14224,7 @@ mute-stream@~1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== -nan@^2.12.1, nan@^2.17.0: +nan@^2.12.1: version "2.18.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== @@ -14375,7 +14276,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -14461,22 +14362,6 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== -node-gyp@8.x: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-gyp@^9.0.0, node-gyp@^9.3.1: version "9.4.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" @@ -14554,18 +14439,6 @@ nodemon@^2.0.21: touch "^3.1.0" undefsafe "^2.0.5" -noop-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/noop-fn/-/noop-fn-1.0.0.tgz#5f33d47f13d2150df93e0cb036699e982f78ffbf" - integrity sha512-pQ8vODlgXt2e7A3mIbFDlizkr46r75V+BJxVAyat8Jl7YmI513gG5cfyRL0FedKraoZ+VAouI1h4/IWpus5pcQ== - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - nopt@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" @@ -15056,6 +14929,13 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== +ospec@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ospec/-/ospec-3.1.0.tgz#d36b8e10110f58f63a463df2390a7a73fe9579a8" + integrity sha512-+nGtjV3vlADp+UGfL51miAh/hB4awPBkQrArhcgG4trAaoA2gKt5bf9w0m9ch9zOr555cHWaCHZEDiBOkNZSxw== + dependencies: + glob "^7.1.3" + p-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -16195,7 +16075,7 @@ punycode@^1.2.4, punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== @@ -17110,6 +16990,14 @@ rollup-plugin-inject@^3.0.0: magic-string "^0.25.3" rollup-pluginutils "^2.8.1" +rollup-plugin-modify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-modify/-/rollup-plugin-modify-3.0.0.tgz#5326e11dfec247e8bbdd9507f3da1da1e5c7818b" + integrity sha512-p/ffs0Y2jz2dEnWjq1oVC7SY37tuS+aP7whoNaQz1EAAOPg+k3vKJo8cMMWx6xpdd0NzhX4y2YF9o/NPu5YR0Q== + dependencies: + magic-string "0.25.2" + ospec "3.1.0" + rollup-plugin-node-polyfills@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" @@ -17117,6 +17005,16 @@ rollup-plugin-node-polyfills@^0.2.1: dependencies: rollup-plugin-inject "^3.0.0" +rollup-plugin-polyfill@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-polyfill/-/rollup-plugin-polyfill-4.2.0.tgz#414c7ffca0557bf29a8f4e073b8eb7f4d02dac42" + integrity sha512-6eeOyn7nr2/xUOtB+MhydvqLrNKcSybGneOuWA+t8Q4rR9NQyeapzwuu5n6nX8OFfY1WI1sHconAofaC44IpuA== + +rollup-plugin-web-worker-loader@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.6.1.tgz#9d7a27575b64b0780fe4e8b3bc87470d217e485f" + integrity sha512-4QywQSz1NXFHKdyiou16mH3ijpcfLtLGOrAqvAqu1Gx+P8+zj+3gwC2BSL/VW1d+LW4nIHC8F7d7OXhs9UdR2A== + rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -17571,15 +17469,6 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-get@^4.0.0, simple-get@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" @@ -17676,15 +17565,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - socks-proxy-agent@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" @@ -17758,7 +17638,7 @@ source-map@^0.7.0, source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -17848,17 +17728,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sqlite3@^5.0.2: - version "5.1.6" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.6.tgz#1d4fbc90fe4fbd51e952e0a90fd8f6c2b9098e97" - integrity sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^4.2.0" - tar "^6.1.11" - optionalDependencies: - node-gyp "8.x" - ssri@^10.0.0, ssri@^10.0.1: version "10.0.5" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" @@ -17873,7 +17742,7 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0, ssri@^8.0.1: +ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== @@ -18300,11 +18169,6 @@ symbol.prototype.description@^1.0.0: has-symbols "^1.0.2" object.getownpropertydescriptors "^2.1.2" -sync-promise-expanded@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sync-promise-expanded/-/sync-promise-expanded-1.0.0.tgz#cbf23f2929124a6cf174979601ef8bf97ed87587" - integrity sha512-pdxxEOaeKO6LghTz0Fe7yw82fx95gtS0SxVgRvIwvN4h9qTie8oOF/pWuH8PGp+PVduS84RXXxO/xrW93Nno9w== - synchronous-promise@^2.0.15: version "2.0.17" resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" @@ -18565,11 +18429,6 @@ tiny-invariant@^1.3.1: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tiny-queue@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046" - integrity sha512-EijGsv7kzd9I9g0ByCl6h42BWNGUZrlCSejfrb3AKeHC33SGbASu1VDf5O3rRiiUOhAC9CHdZxFPbZu0HmR70A== - tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" @@ -18677,13 +18536,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -tr46@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" - integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== - dependencies: - punycode "^2.3.0" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -19008,15 +18860,6 @@ typescript@^4.6.2, typescript@^4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typeson-registry@7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-7.2.1.tgz#2132c7186afceb40bb34250ef7f9337a58bfe96e" - integrity sha512-6KBjzf4kK045pPPA6UqC1O3JKhFM4+O9YZf4AtcBX7v/8m8AG1bB3UIJN05PRY9U3E7P7/4Gc4MjPrqwvGq2wQ== - dependencies: - base64-arraybuffer-es6 "^3.0.0" - typeson "^9.0.2" - whatwg-url "^12.0.1" - typeson-registry@^1.0.0-alpha.20: version "1.0.0-alpha.39" resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.39.tgz#9e0f5aabd5eebfcffd65a796487541196f4b1211" @@ -19026,21 +18869,11 @@ typeson-registry@^1.0.0-alpha.20: typeson "^6.0.0" whatwg-url "^8.4.0" -typeson@9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/typeson/-/typeson-9.0.2.tgz#57a9fb6d23976da7048d7d6d665041d72e434e51" - integrity sha512-83w1JVRVt22Kj2bIBo4DyhWYh4RKzbuBW5g89ETlPJOv0+LLX4/hANstDr76srTzULePKSl7DqDAtqHADJOwvQ== - typeson@^6.0.0, typeson@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== -typeson@^9.0.2: - version "9.0.3" - resolved "https://registry.yarnpkg.com/typeson/-/typeson-9.0.3.tgz#50b2edac0a95c473b7712d5140f622012aa6e163" - integrity sha512-vsOn+VPbIYI3jgj96vwIhAO0BNmlBxEgBKVmuzl1dwXzQe+3XjRi/gK2zYgAansWYlrtvluy4lvWcL8LF01P3Q== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -19684,11 +19517,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - webpack-cli@^4.8.0: version "4.10.0" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" @@ -19912,18 +19740,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -websql-configurable@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/websql-configurable/-/websql-configurable-3.0.3.tgz#425bf4a690ef7160d47711caf7531c2183f7d050" - integrity sha512-Fs+3A2BjI3ukkGtvsZcPS4nGoFE0aqors8YKWgICoOt7dcfdeaTdgoMOoFqlEPHc9u/TS9BEFhKP/A9GttB0CQ== - dependencies: - argsarray "^0.0.1" - immediate "^3.2.2" - noop-fn "^1.0.0" - tiny-queue "^0.2.1" - optionalDependencies: - sqlite3 "^5.0.2" - whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -19936,14 +19752,6 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" - integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== - dependencies: - tr46 "^4.1.1" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -20165,6 +19973,16 @@ ws@^8.13.0, ws@^8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== +ws@^8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + +ws@~8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== + x-default-browser@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/x-default-browser/-/x-default-browser-0.4.0.tgz#70cf0da85da7c0ab5cb0f15a897f2322a6bdd481"