From 43fb4f1e02dbc2c9d52d67fe3d72397484b6642f Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Wed, 5 Jan 2022 23:53:33 +0100 Subject: [PATCH 1/8] Added custom fetch for Electron The default fetch method is restricted by the browser context in which the app runs. This means that all requests are subjected to CORS and other web security mechanisms. This can sometimes be a pain, so this library now uses node-fetch in Electron contexts. --- electron/.gitignore | 1 + electron/.npmignore | 3 + electron/rollup.config.js | 12 +++ electron/src/index.ts | 80 +++++++++++++++++++ electron/tsconfig.json | 19 +++++ package-lock.json | 162 +++++++++++++++++++++++++++++++++++--- package.json | 12 ++- src/electronHelper.ts | 80 +++++++++++++++++++ src/index.ts | 4 +- src/request.ts | 7 +- src/utils.ts | 2 +- 11 files changed, 363 insertions(+), 19 deletions(-) create mode 100644 electron/.gitignore create mode 100644 electron/.npmignore create mode 100644 electron/rollup.config.js create mode 100644 electron/src/index.ts create mode 100644 electron/tsconfig.json create mode 100644 src/electronHelper.ts diff --git a/electron/.gitignore b/electron/.gitignore new file mode 100644 index 00000000..53c37a16 --- /dev/null +++ b/electron/.gitignore @@ -0,0 +1 @@ +dist \ No newline at end of file diff --git a/electron/.npmignore b/electron/.npmignore new file mode 100644 index 00000000..0fdfc98d --- /dev/null +++ b/electron/.npmignore @@ -0,0 +1,3 @@ +src +rollup.config.js +tsconfig.json \ No newline at end of file diff --git a/electron/rollup.config.js b/electron/rollup.config.js new file mode 100644 index 00000000..72d2e7bb --- /dev/null +++ b/electron/rollup.config.js @@ -0,0 +1,12 @@ +export default { + input: 'electron/build/index.js', + output: [ + { + file: 'electron/dist/plugin.js', + format: 'cjs', + sourcemap: true, + inlineDynamicImports: true, + }, + ], + external: ['@capacitor/core'], +}; diff --git a/electron/src/index.ts b/electron/src/index.ts new file mode 100644 index 00000000..42858574 --- /dev/null +++ b/electron/src/index.ts @@ -0,0 +1,80 @@ +import fetch, { Response, RequestInfo, RequestInit } from 'node-fetch'; +import { randomBytes } from 'crypto'; + +type ReturnType = Response & { + headers: { [k: string]: string }; + url: string; + id: string; +}; + +class FetchHelper { + private static _responses = new Map(); + + async fetch(url: RequestInfo, init?: RequestInit): Promise { + const response = await fetch(url, init); + + return FetchHelper._cloneResponse(response); + } + + async getBuffer(id: string): Promise { + const response = await FetchHelper._getResponse(id); + + return response.buffer(); + } + async getText(id: string): Promise { + const response = await FetchHelper._getResponse(id); + + return response.text(); + } + async getJson(id: string): Promise> { + const response = await FetchHelper._getResponse(id); + + return response.json(); + } + async getBlob(id: string): Promise<{ type: string; buffer: Buffer }> { + const response = await FetchHelper._getResponse(id); + const blob = await response.blob(); + + const buffer = Buffer.from(await blob.text(), 'utf-8'); + + return { + type: blob.type, + buffer, + }; + } + + private static _cloneResponse(response: Response): ReturnType { + const headers = Object.fromEntries([...response.headers.entries()]); + const id = FetchHelper._id(); + + FetchHelper._responses.set(id, response); + + return { + ...response, + + redirected: response.redirected, + statusText: response.statusText, + status: response.status, + url: response.url, + ok: response.ok, + headers, + + id, + } as ReturnType; + } + + private static _id() { + return randomBytes(8).toString('hex'); + } + + private static _getResponse(id: string): Promise { + const response = FetchHelper._responses.get(id); + FetchHelper._responses.delete(id); + + return response + ? Promise.resolve(response) + : Promise.reject(new Error(`Response not found for ID '${id}'`)); + } +} + +export { FetchHelper as Fetch, ReturnType }; diff --git a/electron/tsconfig.json b/electron/tsconfig.json new file mode 100644 index 00000000..5aa58262 --- /dev/null +++ b/electron/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "declaration": true, + "experimentalDecorators": true, + "noEmitHelpers": true, + "importHelpers": true, + "lib": ["dom", "es2020"], + "module": "commonjs", + "noImplicitAny": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "outDir": "build", + "sourceMap": true, + "strict": false, + "target": "ES2017" + }, + "include": ["src/**/*"] +} diff --git a/package-lock.json b/package-lock.json index a721c190..a640bc20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,13 @@ "@capacitor/android": "^3.0.0", "@capacitor/core": "^3.0.0", "@capacitor/filesystem": "^1.0.0", - "@capacitor/ios": "^3.0.0" + "@capacitor/ios": "^3.0.0", + "node-fetch": "^2.6.6" }, "devDependencies": { "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", "all-contributors-cli": "^6.20.0", "husky": "^6.0.0", "prettier": "^2.3.0", @@ -84,6 +87,22 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "node_modules/@types/node": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", + "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==", + "dev": true + }, + "node_modules/@types/node-fetch": { + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, "node_modules/all-contributors-cli": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.20.0.tgz", @@ -168,6 +187,12 @@ "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", "dev": true }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -292,6 +317,18 @@ "node": ">=0.1.90" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -321,6 +358,15 @@ "node": ">=0.10.0" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -393,6 +439,20 @@ "node": ">=8" } }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -712,6 +772,27 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -789,7 +870,6 @@ "version": "2.6.6", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1333,8 +1413,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/tslib": { "version": "2.2.0", @@ -1434,14 +1513,12 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -1590,6 +1667,22 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/node": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", + "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==", + "dev": true + }, + "@types/node-fetch": { + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "dev": true, + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, "all-contributors-cli": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.20.0.tgz", @@ -1650,6 +1743,12 @@ "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -1750,6 +1849,15 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1773,6 +1881,12 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, "didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -1830,6 +1944,17 @@ "path-exists": "^4.0.0" } }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -2079,6 +2204,21 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -2143,7 +2283,6 @@ "version": "2.6.6", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "dev": true, "requires": { "whatwg-url": "^5.0.0" } @@ -2556,8 +2695,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "tslib": { "version": "2.2.0", @@ -2623,14 +2761,12 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" diff --git a/package.json b/package.json index 4e76ed48..7a9617b1 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,9 @@ "module": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "scripts": { - "build": "npm run clean && tsc && rollup -c rollup.config.js", + "build": "npm run clean && tsc && rollup -c rollup.config.js && npm run electron:build", "ios:build": "cd ios && pod install && cd ..", + "electron:build": "tsc --project electron/tsconfig.json && rollup -c electron/rollup.config.js && rimraf ./electron/build", "docs": "typedoc src/web.ts src/definitions.ts", "clean": "rimraf ./dist", "watch": "tsc --watch", @@ -22,10 +23,13 @@ "@capacitor/android": "^3.0.0", "@capacitor/core": "^3.0.0", "@capacitor/filesystem": "^1.0.0", - "@capacitor/ios": "^3.0.0" + "@capacitor/ios": "^3.0.0", + "node-fetch": "^2.6.6" }, "devDependencies": { "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", "all-contributors-cli": "^6.20.0", "husky": "^6.0.0", "prettier": "^2.3.0", @@ -45,6 +49,7 @@ "dist/", "ios/", "android/", + "electron/", "CapacitorCommunityHttp.podspec" ], "keywords": [ @@ -59,6 +64,9 @@ }, "android": { "src": "android" + }, + "electron": { + "src": "electron" } }, "repository": { diff --git a/src/electronHelper.ts b/src/electronHelper.ts new file mode 100644 index 00000000..15762ffc --- /dev/null +++ b/src/electronHelper.ts @@ -0,0 +1,80 @@ +import { + RequestInfo, + RequestInit as NodeFetchRequestInit, + Response as NodeFetchResponse, +} from 'node-fetch'; + +declare global { + interface Window { + CapacitorCustomPlatform: { + plugins?: { + Fetch: { + fetch( + url: RequestInfo, + init?: NodeFetchRequestInit, + ): Promise; + getBlob(id: string): Promise<{ type: string; buffer: Buffer }>; + getJson(id: string): Promise>; + getBuffer(id: string): Promise; + getText(id: string): Promise; + }; + }; + }; + } +} + +export type ReturnType = NodeFetchResponse & { + headers: { [k: string]: string }; + url: string; + id: string; +}; + +export type Response = ReturnType & { + json: () => Promise>; + text: () => Promise; + blob: () => Promise; + headers: Headers; +}; + +const electronFetch = ( + url: RequestInfo, + init?: RequestInit, +): Promise => { + if (!window.CapacitorCustomPlatform.plugins?.Fetch) { + throw new Error('CapacitorCustomPlatform.plugins.Fetch is not defined???'); + } + + const nodeFetchInit = init ? (init as NodeFetchRequestInit) : undefined; + + return window.CapacitorCustomPlatform.plugins.Fetch.fetch( + url, + nodeFetchInit, + ).then((response: ReturnType): Response => { + const { id, headers, ...responseData } = response; + + return { + ...responseData, + headers: new Headers(headers), + json: () => window.CapacitorCustomPlatform.plugins?.Fetch?.getJson(id), + text: () => window.CapacitorCustomPlatform.plugins?.Fetch?.getText(id), + blob: async (): Promise => { + const blobObj = + await window.CapacitorCustomPlatform.plugins?.Fetch.getBlob(id); + + if (!blobObj) { + throw new Error( + 'CapacitorCustomPlatform.plugins.Fetch is not defined???', + ); + } + + const { type, buffer } = blobObj; + + return new Blob([buffer], { type }); + }, + } as Response; + }); +}; + +// @ts-ignore +export default (() => + window.CapacitorCustomPlatform.plugins?.Fetch ? electronFetch : undefined)(); diff --git a/src/index.ts b/src/index.ts index 92166bde..b0882aac 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,7 @@ import { registerPlugin } from '@capacitor/core'; + import type { HttpPlugin } from './definitions'; +import electronFetch from './electronHelper'; const Http = registerPlugin('Http', { web: () => import('./web').then(m => new m.HttpWeb()), @@ -7,4 +9,4 @@ const Http = registerPlugin('Http', { }); export * from './definitions'; -export { Http }; +export { Http, electronFetch }; diff --git a/src/request.ts b/src/request.ts index c6400c16..07f69fb5 100644 --- a/src/request.ts +++ b/src/request.ts @@ -5,6 +5,9 @@ import type { HttpHeaders, } from './definitions'; import { readBlobAsBase64 } from './utils'; +import electronFetch from './electronHelper'; + +const fetch = electronFetch ?? window.fetch; /** * Normalize an HttpHeaders map by lowercasing all of the values @@ -99,7 +102,7 @@ export const buildRequestInit = ( } output.body = form; const headers = new Headers(output.headers); - headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary + headers.delete('content-type'); // content-type will be set by `window.fetch` to include boundary output.headers = headers; } else if ( type.includes('application/json') || @@ -139,7 +142,7 @@ export const request = async (options: HttpOptions): Promise => { case 'arraybuffer': case 'blob': const blob = await response.blob(); - data = await readBlobAsBase64(blob); + data = await readBlobAsBase64(blob as Blob); break; case 'json': data = await response.json(); diff --git a/src/utils.ts b/src/utils.ts index eb54b52e..d6912af1 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,7 +7,7 @@ export const readBlobAsBase64 = async (blob: Blob): Promise => const reader = new FileReader(); reader.onload = () => { const base64String = reader.result as string; - const base64StringWithoutTags = base64String.substr( + const base64StringWithoutTags = base64String.substring( base64String.indexOf(',') + 1, ); // remove prefix "data:application/pdf;base64," resolve(base64StringWithoutTags); From bc76afac9c4c69b1f19cfdc722eb1ae15035004a Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Thu, 6 Jan 2022 00:07:33 +0100 Subject: [PATCH 2/8] Removed old code --- src/electronHelper.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/electronHelper.ts b/src/electronHelper.ts index 15762ffc..ffbd8c60 100644 --- a/src/electronHelper.ts +++ b/src/electronHelper.ts @@ -76,5 +76,6 @@ const electronFetch = ( }; // @ts-ignore -export default (() => - window.CapacitorCustomPlatform.plugins?.Fetch ? electronFetch : undefined)(); +export default window.CapacitorCustomPlatform.plugins?.Fetch + ? electronFetch + : undefined; From 17c163e64360d05af12c0a5f0c991c86094b61c1 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Thu, 6 Jan 2022 00:59:36 +0100 Subject: [PATCH 3/8] Bugfix --- src/electronHelper.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/electronHelper.ts b/src/electronHelper.ts index ffbd8c60..3448bd82 100644 --- a/src/electronHelper.ts +++ b/src/electronHelper.ts @@ -6,7 +6,7 @@ import { declare global { interface Window { - CapacitorCustomPlatform: { + CapacitorCustomPlatform?: { plugins?: { Fetch: { fetch( @@ -40,7 +40,7 @@ const electronFetch = ( url: RequestInfo, init?: RequestInit, ): Promise => { - if (!window.CapacitorCustomPlatform.plugins?.Fetch) { + if (!window.CapacitorCustomPlatform?.plugins?.Fetch) { throw new Error('CapacitorCustomPlatform.plugins.Fetch is not defined???'); } @@ -55,11 +55,11 @@ const electronFetch = ( return { ...responseData, headers: new Headers(headers), - json: () => window.CapacitorCustomPlatform.plugins?.Fetch?.getJson(id), - text: () => window.CapacitorCustomPlatform.plugins?.Fetch?.getText(id), + json: () => window.CapacitorCustomPlatform?.plugins?.Fetch?.getJson(id), + text: () => window.CapacitorCustomPlatform?.plugins?.Fetch?.getText(id), blob: async (): Promise => { const blobObj = - await window.CapacitorCustomPlatform.plugins?.Fetch.getBlob(id); + await window.CapacitorCustomPlatform?.plugins?.Fetch.getBlob(id); if (!blobObj) { throw new Error( @@ -76,6 +76,6 @@ const electronFetch = ( }; // @ts-ignore -export default window.CapacitorCustomPlatform.plugins?.Fetch +export default window.CapacitorCustomPlatform?.plugins?.Fetch ? electronFetch : undefined; From ff03540c5e94f2c8157014645b2d42630ea59144 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Thu, 6 Jan 2022 01:02:17 +0100 Subject: [PATCH 4/8] Added electron to the example app --- example/capacitor.config.json | 6 + example/electron/.gitignore | 10 + example/electron/assets/appIcon.ico | Bin 0 -> 145242 bytes example/electron/assets/appIcon.png | Bin 0 -> 123893 bytes example/electron/electron-builder.config.json | 23 + example/electron/live-runner.js | 75 + example/electron/package-lock.json | 9222 +++++++++++++++++ example/electron/package.json | 42 + .../resources/electron-publisher-custom.js | 10 + example/electron/src/index.ts | 67 + example/electron/src/preload.ts | 3 + example/electron/src/rt/electron-rt.ts | 27 + example/electron/src/setup.ts | 216 + example/electron/tsconfig.json | 15 + example/package-lock.json | 944 +- example/package.json | 3 +- example/src/App.tsx | 67 +- 17 files changed, 10485 insertions(+), 245 deletions(-) create mode 100644 example/capacitor.config.json create mode 100644 example/electron/.gitignore create mode 100644 example/electron/assets/appIcon.ico create mode 100644 example/electron/assets/appIcon.png create mode 100644 example/electron/electron-builder.config.json create mode 100644 example/electron/live-runner.js create mode 100644 example/electron/package-lock.json create mode 100644 example/electron/package.json create mode 100644 example/electron/resources/electron-publisher-custom.js create mode 100644 example/electron/src/index.ts create mode 100644 example/electron/src/preload.ts create mode 100644 example/electron/src/rt/electron-rt.ts create mode 100644 example/electron/src/setup.ts create mode 100644 example/electron/tsconfig.json diff --git a/example/capacitor.config.json b/example/capacitor.config.json new file mode 100644 index 00000000..40ae1782 --- /dev/null +++ b/example/capacitor.config.json @@ -0,0 +1,6 @@ +{ + "appId": "com.example.app", + "appName": "http-example", + "webDir": "www", + "bundledWebRuntime": false +} diff --git a/example/electron/.gitignore b/example/electron/.gitignore new file mode 100644 index 00000000..c3d1593e --- /dev/null +++ b/example/electron/.gitignore @@ -0,0 +1,10 @@ +# NPM renames .gitignore to .npmignore +# In order to prevent that, we remove the initial "." +# And the CLI then renames it +app +node_modules +build +dist +logs +capacitor.config.json +electron-plugins.js \ No newline at end of file diff --git a/example/electron/assets/appIcon.ico b/example/electron/assets/appIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1aea5a5c62137421fb8c5d8558d10913a9cfb43d GIT binary patch literal 145242 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 z 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

`-99s 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 { + let tempChild = cp.spawn(npmCmd, ['run', 'build']); + tempChild.once('exit', () => { + resolve(); + }); + tempChild.stdout.pipe(process.stdout); + }); +} +//*/ + +async function spawnElectron() { + if (child !== null) { + child.stdin.pause(); + child.kill(); + child = null; + await runBuild(); + } + child = cp.spawn(electron, ['--inspect=5858', './']); + child.on('exit', () => { + if (!reloadWatcher.restarting) { + process.exit(0); + } + }); + child.stdout.pipe(process.stdout); +} + +function setupReloadWatcher() { + reloadWatcher.watcher = chokidar + .watch('./src/**/*', { + ignored: /[/\\]\./, + persistent: true, + }) + .on('ready', () => { + reloadWatcher.ready = true; + }) + .on('all', (_event, _path) => { + if (reloadWatcher.ready) { + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = setTimeout(async () => { + console.log('Restarting'); + reloadWatcher.restarting = true; + await spawnElectron(); + reloadWatcher.restarting = false; + reloadWatcher.ready = false; + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = null; + reloadWatcher.watcher = null; + setupReloadWatcher(); + }, 500); + } + }); +} + +(async () => { + await runBuild(); + await spawnElectron(); + setupReloadWatcher(); +})(); diff --git a/example/electron/package-lock.json b/example/electron/package-lock.json new file mode 100644 index 00000000..58d1a3cc --- /dev/null +++ b/example/electron/package-lock.json @@ -0,0 +1,9222 @@ +{ + "name": "http-example", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "http-example", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@capacitor-community/electron": "^4.0.1", + "@capacitor-community/http": "file:../..", + "chokidar": "~3.5.2", + "electron-is-dev": "~2.0.0", + "electron-serve": "~1.1.0", + "electron-unhandled": "~3.0.2", + "electron-updater": "~4.3.9", + "electron-window-state": "~5.0.3" + }, + "devDependencies": { + "electron": "~13.1.9", + "electron-builder": "~22.11.7", + "electron-rebuild": "~2.3.5", + "typescript": "~4.3.5" + } + }, + "../..": { + "name": "@capacitor-community/http", + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "@capacitor/android": "^3.0.0", + "@capacitor/core": "^3.0.0", + "@capacitor/filesystem": "^1.0.0", + "@capacitor/ios": "^3.0.0", + "node-fetch": "^2.6.6" + }, + "devDependencies": { + "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", + "all-contributors-cli": "^6.20.0", + "husky": "^6.0.0", + "prettier": "^2.3.0", + "prettier-plugin-java": "^1.1.1", + "pretty-quick": "^3.1.0", + "rimraf": "^3.0.2", + "rollup": "^2.50.0", + "typedoc": "^0.20.36", + "typescript": "^4.2.4" + } + }, + "node_modules/@capacitor-community/electron": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", + "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "dependencies": { + "@capacitor/cli": "^3.1.1", + "@capacitor/core": "^3.1.1", + "@ionic/utils-fs": "~3.1.5", + "chalk": "~4.1.1", + "electron-is-dev": "~2.0.0", + "events": "~3.3.0", + "fs-extra": "~9.1.0", + "mime-types": "~2.1.31", + "ora": "~5.4.1" + } + }, + "node_modules/@capacitor-community/http": { + "resolved": "../..", + "link": true + }, + "node_modules/@capacitor/cli": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.3.4.tgz", + "integrity": "sha512-kAyB+WoKk7YvC3Z5bA8E8a2oEVjv+KdJQxjSiUNYy9KiLny4PEUWzIUjiPZcWOH7JGuHGz5FNRTy1irkd+rV5A==", + "dependencies": { + "@ionic/cli-framework-output": "^2.2.1", + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.6", + "@ionic/utils-terminal": "^2.3.0", + "commander": "^6.0.0", + "debug": "^4.2.0", + "env-paths": "^2.2.0", + "kleur": "^4.1.1", + "native-run": "^1.5.0", + "open": "^7.4.2", + "plist": "^3.0.2", + "prompts": "^2.3.2", + "semver": "^7.3.2", + "tar": "^6.1.11", + "tslib": "^2.1.0", + "xml2js": "^0.4.23" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@capacitor/core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.3.4.tgz", + "integrity": "sha512-C4IQhSj60cr4OwMrm85r+5QB8WIvoBpvusUntxpJdVmhIzsooMQQ+3sTsXa2Rn+G57/zA2S/VpQsvUKasGwBtA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron/get": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", + "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz", + "integrity": "sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.0.3", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", + "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", + "dependencies": { + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", + "dependencies": { + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", + "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", + "dependencies": { + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", + "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", + "dependencies": { + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.1", + "cross-spawn": "^7.0.0", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", + "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", + "dependencies": { + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.18.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.5.tgz", + "integrity": "sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A==", + "dev": true + }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "node_modules/@types/verror": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", + "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "dev": true, + "optional": true + }, + "node_modules/@types/yargs": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz", + "integrity": "sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-builder-bin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz", + "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.11.tgz", + "integrity": "sha512-sdOvTPKERzPJtC8ipaYTQJHW9NDl0jAB4MuxixtFrZheHUwd+QI/1oRLtspZHacmk2kqa+lULVTm9Qfj4N2blw==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.0.5", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.2", + "ejs": "^3.1.6", + "electron-osx-sign": "^0.5.0", + "electron-publish": "22.11.11", + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.8", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.0.4", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.5", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/asar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", + "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + }, + "optionalDependencies": { + "@types/glob": "^7.1.1" + } + }, + "node_modules/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", + "dev": true, + "optional": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builder-util": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.11.tgz", + "integrity": "sha512-2UJjOuPXhix68mmQ9hkv9G52Y0EVB8RPjlJF61jr3/tLIyd3UiJmEEhKttu8F+JVHKj8myz1MWw2/keJE/Nh+w==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "3.7.1", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "8.7.10", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.10.tgz", + "integrity": "sha512-zelTRebsOsj33pF+Jf/qwpvx9W6CeMQshqaRa70Ii6+NQGsspMXqlKDQb+1lvTv9aWARxa3+jy/syzm8jTE8Kw==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, + "node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/dir-compare/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/dmg-builder": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.11.tgz", + "integrity": "sha512-4ew0c1G8bTZ14k2Nn++AHGDyEQ2rfay2YSguVvynnsD4rke6IGASQd8x6njP9t/SrEJOIQQpIKmEN/9tXJQoGw==", + "dev": true, + "dependencies": { + "app-builder-lib": "22.11.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.9" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-license": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.10.tgz", + "integrity": "sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "dependencies": { + "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "13.1.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-13.1.9.tgz", + "integrity": "sha512-By4Zb72XNQLrPb70BXdIW3NtEHFwybP5DIQjohnCxOYONq5vojuHjNcTuWnBgMvwQ2qwykk6Tw5EwF2Pt0CWjA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^14.6.2", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.11.tgz", + "integrity": "sha512-yTD+u3uDnAov7xmniYn6zvNOcmzYhBL6n3iZmyPt+1UzMxhrkvSuEPJeuMPFD5s5D4FNBX4r0vAI4tv3SbWnnA==", + "dev": true, + "dependencies": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "22.11.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "dmg-builder": "22.11.11", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-is-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", + "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-osx-sign": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", + "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/electron-osx-sign/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/electron-publish": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.11.tgz", + "integrity": "sha512-XINI2yz7DpForvLDENr1zfi6yW+O3ufeIgNCg/nkqiD3tBM44AokgY3aYURzsi93ZwFscoQkR2LhmHDvn30oAw==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-rebuild": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.5.tgz", + "integrity": "sha512-1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.1", + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^9.0.1", + "got": "^11.7.0", + "lzma-native": "^6.0.1", + "node-abi": "^2.19.2", + "node-gyp": "^7.1.0", + "ora": "^5.1.0", + "tar": "^6.0.5", + "yargs": "^16.0.0" + }, + "bin": { + "electron-rebuild": "lib/src/cli.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/electron-rebuild/node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/electron-rebuild/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/electron-rebuild/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-rebuild/node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-rebuild/node_modules/got": { + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/electron-rebuild/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/electron-rebuild/node_modules/keyv": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/electron-rebuild/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-rebuild/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-rebuild/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-serve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/electron-serve/-/electron-serve-1.1.0.tgz", + "integrity": "sha512-tQJBCbXKoKCfkBC143QCqnEtT1s8dNE2V+b/82NF6lxnGO/2Q3a3GSLHtKl3iEDQgdzTf9pH7p418xq2rXbz1Q==" + }, + "node_modules/electron-unhandled": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/electron-unhandled/-/electron-unhandled-3.0.2.tgz", + "integrity": "sha512-IIqXnM5eNgV7k5sDA/GZ39ygJbpfF3WTArNGQ1TB4AI6ajQuuVztA0M6Mq9uEpmTh5gz4nR+YsTNWYsHLoM5rw==", + "dependencies": { + "clean-stack": "^2.1.0", + "electron-is-dev": "^1.0.1", + "ensure-error": "^2.0.0", + "lodash.debounce": "^4.0.8" + } + }, + "node_modules/electron-unhandled/node_modules/electron-is-dev": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", + "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + }, + "node_modules/electron-updater": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.10.tgz", + "integrity": "sha512-aE8ON9ek34reYCN1exJNHoI/8o450UBkWBeSotP+aRzokKs5ej+ipq3CgzqaiAncBWEY/spq0ohOq9MVPYVk1w==", + "dependencies": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "8.7.7", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.5" + } + }, + "node_modules/electron-updater/node_modules/builder-util-runtime": { + "version": "8.7.7", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz", + "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==", + "dependencies": { + "debug": "^4.3.2", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-updater/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-window-state": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", + "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", + "dependencies": { + "jsonfile": "^4.0.0", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/elementtree/node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/ensure-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ensure-error/-/ensure-error-2.1.0.tgz", + "integrity": "sha512-+BMSJHw9gxiJAAp2ZR1E0TNcL09dD3lOvkl7WVm4+Y6xnes/pMetP/TzCHiDduh8ihNDjbGfuYxl7l4PA1xZ8A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "dependencies": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/jake/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jake/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsprim/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/jsprim/node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lzma-native": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", + "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^1.6.0", + "node-pre-gyp": "^0.11.0", + "readable-stream": "^2.3.5", + "rimraf": "^2.7.1" + }, + "bin": { + "lzmajs": "bin/lzmajs" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/native-run": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.5.0.tgz", + "integrity": "sha512-YYsYYAljk70N+FJLeY5KuafsBit7agOBR3ch1KTXOaKkREkM49yCwJIwVz2faoWpJ2MeyLdXltk5PskUuPQqZA==", + "dependencies": { + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "^0.3.0", + "debug": "^4.3.2", + "elementtree": "^0.1.7", + "ini": "^1.3.5", + "plist": "^3.0.4", + "split2": "^3.2.2", + "through2": "^4.0.2", + "tslib": "^2.3.1", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dev": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true + }, + "node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/node-pre-gyp/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/node-pre-gyp/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/node-pre-gyp/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/node-pre-gyp/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/node-pre-gyp/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/node-pre-gyp/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-pre-gyp/node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-pre-gyp/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/plist": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "dependencies": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/update-notifier/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "optional": true + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@capacitor-community/electron": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", + "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "requires": { + "@capacitor/cli": "^3.1.1", + "@capacitor/core": "^3.1.1", + "@ionic/utils-fs": "~3.1.5", + "chalk": "~4.1.1", + "electron-is-dev": "~2.0.0", + "events": "~3.3.0", + "fs-extra": "~9.1.0", + "mime-types": "~2.1.31", + "ora": "~5.4.1" + } + }, + "@capacitor-community/http": { + "version": "file:../..", + "requires": { + "@capacitor/android": "^3.0.0", + "@capacitor/core": "^3.0.0", + "@capacitor/filesystem": "^1.0.0", + "@capacitor/ios": "^3.0.0", + "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", + "all-contributors-cli": "^6.20.0", + "husky": "^6.0.0", + "node-fetch": "^2.6.6", + "prettier": "^2.3.0", + "prettier-plugin-java": "^1.1.1", + "pretty-quick": "^3.1.0", + "rimraf": "^3.0.2", + "rollup": "^2.50.0", + "typedoc": "^0.20.36", + "typescript": "^4.2.4" + } + }, + "@capacitor/cli": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.3.4.tgz", + "integrity": "sha512-kAyB+WoKk7YvC3Z5bA8E8a2oEVjv+KdJQxjSiUNYy9KiLny4PEUWzIUjiPZcWOH7JGuHGz5FNRTy1irkd+rV5A==", + "requires": { + "@ionic/cli-framework-output": "^2.2.1", + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.6", + "@ionic/utils-terminal": "^2.3.0", + "commander": "^6.0.0", + "debug": "^4.2.0", + "env-paths": "^2.2.0", + "kleur": "^4.1.1", + "native-run": "^1.5.0", + "open": "^7.4.2", + "plist": "^3.0.2", + "prompts": "^2.3.2", + "semver": "^7.3.2", + "tar": "^6.1.11", + "tslib": "^2.1.0", + "xml2js": "^0.4.23" + } + }, + "@capacitor/core": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.3.4.tgz", + "integrity": "sha512-C4IQhSj60cr4OwMrm85r+5QB8WIvoBpvusUntxpJdVmhIzsooMQQ+3sTsXa2Rn+G57/zA2S/VpQsvUKasGwBtA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + }, + "@electron/get": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", + "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@electron/universal": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.0.5.tgz", + "integrity": "sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==", + "dev": true, + "requires": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.0.3", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1" + } + }, + "@ionic/cli-framework-output": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", + "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", + "requires": { + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-array": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "requires": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-fs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", + "requires": { + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-object": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "requires": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-process": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", + "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", + "requires": { + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-stream": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "requires": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-subprocess": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", + "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", + "requires": { + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.1", + "cross-spawn": "^7.0.0", + "debug": "^4.0.0", + "tslib": "^2.0.1" + } + }, + "@ionic/utils-terminal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", + "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", + "requires": { + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, + "@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "optional": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, + "@types/node": { + "version": "14.18.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.5.tgz", + "integrity": "sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A==", + "dev": true + }, + "@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "@types/verror": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", + "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "dev": true, + "optional": true + }, + "@types/yargs": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.8.tgz", + "integrity": "sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-builder-bin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz", + "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==", + "dev": true + }, + "app-builder-lib": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.11.11.tgz", + "integrity": "sha512-sdOvTPKERzPJtC8ipaYTQJHW9NDl0jAB4MuxixtFrZheHUwd+QI/1oRLtspZHacmk2kqa+lULVTm9Qfj4N2blw==", + "dev": true, + "requires": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.0.5", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.2", + "ejs": "^3.1.6", + "electron-osx-sign": "^0.5.0", + "electron-publish": "22.11.11", + "fs-extra": "^10.0.0", + "hosted-git-info": "^4.0.2", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.8", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.0.4", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.5", + "temp-file": "^3.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "asar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.1.0.tgz", + "integrity": "sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5" + } + }, + "boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", + "dev": true, + "optional": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "bplist-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", + "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", + "requires": { + "big-integer": "1.6.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builder-util": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.11.11.tgz", + "integrity": "sha512-2UJjOuPXhix68mmQ9hkv9G52Y0EVB8RPjlJF61jr3/tLIyd3UiJmEEhKttu8F+JVHKj8myz1MWw2/keJE/Nh+w==", + "dev": true, + "requires": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "3.7.1", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "builder-util-runtime": { + "version": "8.7.10", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.10.tgz", + "integrity": "sha512-zelTRebsOsj33pF+Jf/qwpvx9W6CeMQshqaRa70Ii6+NQGsspMXqlKDQb+1lvTv9aWARxa3+jy/syzm8jTE8Kw==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "sax": "^1.2.4" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "requires": { + "buffer": "^5.1.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, + "dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "requires": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, + "dmg-builder": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.11.11.tgz", + "integrity": "sha512-4ew0c1G8bTZ14k2Nn++AHGDyEQ2rfay2YSguVvynnsD4rke6IGASQd8x6njP9t/SrEJOIQQpIKmEN/9tXJQoGw==", + "dev": true, + "requires": { + "app-builder-lib": "22.11.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "dmg-license": "^1.0.9", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "dmg-license": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.10.tgz", + "integrity": "sha512-SVeeyiOeinV5JCPHXMdKOgK1YVbak/4+8WL2rBnfqRYpA5FaeFaQnQWb25x628am1w70CbipGDv9S51biph63A==", + "dev": true, + "optional": true, + "requires": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, + "electron": { + "version": "13.1.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-13.1.9.tgz", + "integrity": "sha512-By4Zb72XNQLrPb70BXdIW3NtEHFwybP5DIQjohnCxOYONq5vojuHjNcTuWnBgMvwQ2qwykk6Tw5EwF2Pt0CWjA==", + "dev": true, + "requires": { + "@electron/get": "^1.0.1", + "@types/node": "^14.6.2", + "extract-zip": "^1.0.3" + } + }, + "electron-builder": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.11.11.tgz", + "integrity": "sha512-yTD+u3uDnAov7xmniYn6zvNOcmzYhBL6n3iZmyPt+1UzMxhrkvSuEPJeuMPFD5s5D4FNBX4r0vAI4tv3SbWnnA==", + "dev": true, + "requires": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "22.11.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "dmg-builder": "22.11.11", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "electron-is-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", + "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==" + }, + "electron-osx-sign": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz", + "integrity": "sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "electron-publish": { + "version": "22.11.11", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.11.11.tgz", + "integrity": "sha512-XINI2yz7DpForvLDENr1zfi6yW+O3ufeIgNCg/nkqiD3tBM44AokgY3aYURzsi93ZwFscoQkR2LhmHDvn30oAw==", + "dev": true, + "requires": { + "@types/fs-extra": "^9.0.11", + "builder-util": "22.11.11", + "builder-util-runtime": "8.7.10", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "electron-rebuild": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-2.3.5.tgz", + "integrity": "sha512-1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==", + "dev": true, + "requires": { + "@malept/cross-spawn-promise": "^1.1.1", + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^9.0.1", + "got": "^11.7.0", + "lzma-native": "^6.0.1", + "node-abi": "^2.19.2", + "node-gyp": "^7.1.0", + "ora": "^5.1.0", + "tar": "^6.0.5", + "yargs": "^16.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "keyv": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "electron-serve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/electron-serve/-/electron-serve-1.1.0.tgz", + "integrity": "sha512-tQJBCbXKoKCfkBC143QCqnEtT1s8dNE2V+b/82NF6lxnGO/2Q3a3GSLHtKl3iEDQgdzTf9pH7p418xq2rXbz1Q==" + }, + "electron-unhandled": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/electron-unhandled/-/electron-unhandled-3.0.2.tgz", + "integrity": "sha512-IIqXnM5eNgV7k5sDA/GZ39ygJbpfF3WTArNGQ1TB4AI6ajQuuVztA0M6Mq9uEpmTh5gz4nR+YsTNWYsHLoM5rw==", + "requires": { + "clean-stack": "^2.1.0", + "electron-is-dev": "^1.0.1", + "ensure-error": "^2.0.0", + "lodash.debounce": "^4.0.8" + }, + "dependencies": { + "electron-is-dev": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", + "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" + } + } + }, + "electron-updater": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.10.tgz", + "integrity": "sha512-aE8ON9ek34reYCN1exJNHoI/8o450UBkWBeSotP+aRzokKs5ej+ipq3CgzqaiAncBWEY/spq0ohOq9MVPYVk1w==", + "requires": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "8.7.7", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.5" + }, + "dependencies": { + "builder-util-runtime": { + "version": "8.7.7", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz", + "integrity": "sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==", + "requires": { + "debug": "^4.3.2", + "sax": "^1.2.4" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "electron-window-state": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", + "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", + "requires": { + "jsonfile": "^4.0.0", + "mkdirp": "^0.5.1" + } + }, + "elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "requires": { + "sax": "1.1.4" + }, + "dependencies": { + "sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "ensure-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ensure-error/-/ensure-error-2.1.0.tgz", + "integrity": "sha512-+BMSJHw9gxiJAAp2ZR1E0TNcL09dD3lOvkl7WVm4+Y6xnes/pMetP/TzCHiDduh8ihNDjbGfuYxl7l4PA1xZ8A==" + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "requires": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + } + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lzma-native": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-6.0.1.tgz", + "integrity": "sha512-O6oWF0xe1AFvOCjU8uOZBZ/lhjaMNwHfVNaqVMqmoQXlRwBcFWpCAToiZOdXcKVMdo/5s/D0a2QgA5laMErxHQ==", + "dev": true, + "requires": { + "node-addon-api": "^1.6.0", + "node-pre-gyp": "^0.11.0", + "readable-stream": "^2.3.5", + "rimraf": "^2.7.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^4.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "native-run": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.5.0.tgz", + "integrity": "sha512-YYsYYAljk70N+FJLeY5KuafsBit7agOBR3ch1KTXOaKkREkM49yCwJIwVz2faoWpJ2MeyLdXltk5PskUuPQqZA==", + "requires": { + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "^0.3.0", + "debug": "^4.3.2", + "elementtree": "^0.1.7", + "ini": "^1.3.5", + "plist": "^3.0.4", + "split2": "^3.2.2", + "through2": "^4.0.2", + "tslib": "^2.3.1", + "yauzl": "^2.10.0" + } + }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dev": true, + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true + }, + "plist": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", + "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", + "requires": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "dependencies": { + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + } + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "dependencies": { + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + } + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "requires": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.13.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "requires": { + "readable-stream": "^3.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "requires": { + "debug": "^4.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "requires": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + } + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "requires": { + "readable-stream": "3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "requires": { + "tmp": "^0.2.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "optional": true + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/example/electron/package.json b/example/electron/package.json new file mode 100644 index 00000000..657d396a --- /dev/null +++ b/example/electron/package.json @@ -0,0 +1,42 @@ +{ + "name": "http-example", + "version": "1.0.0", + "description": "An Amazing Capacitor App", + "author": { + "name": "", + "email": "" + }, + "repository": { + "type": "git", + "url": "" + }, + "license": "MIT", + "main": "build/src/index.js", + "scripts": { + "build": "tsc && electron-rebuild", + "electron:start-live": "node ./live-runner.js", + "electron:start": "npm run build && electron --inspect=5858 ./", + "electron:pack": "npm run build && electron-builder build --dir -c ./electron-builder.config.json", + "electron:make": "npm run build && electron-builder build -c ./electron-builder.config.json -p always" + }, + "dependencies": { + "@capacitor-community/electron": "^4.0.1", + "@capacitor-community/http": "file:../..", + "chokidar": "~3.5.2", + "electron-is-dev": "~2.0.0", + "electron-serve": "~1.1.0", + "electron-unhandled": "~3.0.2", + "electron-updater": "~4.3.9", + "electron-window-state": "~5.0.3" + }, + "devDependencies": { + "electron": "~13.1.9", + "electron-builder": "~22.11.7", + "electron-rebuild": "~2.3.5", + "typescript": "~4.3.5" + }, + "keywords": [ + "capacitor", + "electron" + ] +} diff --git a/example/electron/resources/electron-publisher-custom.js b/example/electron/resources/electron-publisher-custom.js new file mode 100644 index 00000000..6e0821ef --- /dev/null +++ b/example/electron/resources/electron-publisher-custom.js @@ -0,0 +1,10 @@ +/* eslint-disable no-undef */ +/* eslint-disable @typescript-eslint/no-var-requires */ +const electronPublish = require('electron-publish'); + +class Publisher extends electronPublish.Publisher { + async upload(task) { + console.log('electron-publisher-custom', task.file); + } +} +module.exports = Publisher; diff --git a/example/electron/src/index.ts b/example/electron/src/index.ts new file mode 100644 index 00000000..ebce0c7d --- /dev/null +++ b/example/electron/src/index.ts @@ -0,0 +1,67 @@ +import type { CapacitorElectronConfig } from '@capacitor-community/electron'; +import { getCapacitorElectronConfig, setupElectronDeepLinking } from '@capacitor-community/electron'; +import type { MenuItemConstructorOptions } from 'electron'; +import { app, MenuItem } from 'electron'; +import electronIsDev from 'electron-is-dev'; +import unhandled from 'electron-unhandled'; +import { autoUpdater } from 'electron-updater'; + +import { ElectronCapacitorApp, setupContentSecurityPolicy, setupReloadWatcher } from './setup'; + +// Graceful handling of unhandled errors. +unhandled(); + +// Define our menu templates (these are optional) +const trayMenuTemplate: (MenuItemConstructorOptions | MenuItem)[] = [new MenuItem({ label: 'Quit App', role: 'quit' })]; +const appMenuBarMenuTemplate: (MenuItemConstructorOptions | MenuItem)[] = [{ role: process.platform === 'darwin' ? 'appMenu' : 'fileMenu' }, { role: 'viewMenu' }]; + +// Get Config options from capacitor.config +const capacitorFileConfig: CapacitorElectronConfig = getCapacitorElectronConfig(); + +// Initialize our app. You can pass menu templates into the app here. +// const myCapacitorApp = new ElectronCapacitorApp(capacitorFileConfig); +const myCapacitorApp = new ElectronCapacitorApp(capacitorFileConfig, trayMenuTemplate, appMenuBarMenuTemplate); + +// If deeplinking is enabled then we will set it up here. +if (capacitorFileConfig.electron?.deepLinkingEnabled) { + setupElectronDeepLinking(myCapacitorApp, { + customProtocol: capacitorFileConfig.electron.deepLinkingCustomProtocol ?? 'mycapacitorapp', + }); +} + +// If we are in Dev mode, use the file watcher components. +if (electronIsDev) { + setupReloadWatcher(myCapacitorApp); +} + +// Run Application +(async () => { + // Wait for electron app to be ready. + await app.whenReady(); + // Security - Set Content-Security-Policy based on whether or not we are in dev mode. + setupContentSecurityPolicy(myCapacitorApp.getCustomURLScheme()); + // Initialize our app, build windows, and load content. + await myCapacitorApp.init(); + // Check for updates if we are in a packaged app. + autoUpdater.checkForUpdatesAndNotify(); +})(); + +// Handle when all of our windows are close (platforms have their own expectations). +app.on('window-all-closed', function () { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +// When the dock icon is clicked. +app.on('activate', async function () { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (myCapacitorApp.getMainWindow().isDestroyed()) { + await myCapacitorApp.init(); + } +}); + +// Place all ipc or other electron api calls and custom functionality under this line diff --git a/example/electron/src/preload.ts b/example/electron/src/preload.ts new file mode 100644 index 00000000..c14cabd9 --- /dev/null +++ b/example/electron/src/preload.ts @@ -0,0 +1,3 @@ +require('./rt/electron-rt'); +////////////////////////////// +// User Defined Preload scripts below diff --git a/example/electron/src/rt/electron-rt.ts b/example/electron/src/rt/electron-rt.ts new file mode 100644 index 00000000..72011996 --- /dev/null +++ b/example/electron/src/rt/electron-rt.ts @@ -0,0 +1,27 @@ +import { ipcRenderer, contextBridge } from 'electron'; + +//////////////////////////////////////////////////////// +// eslint-disable-next-line @typescript-eslint/no-var-requires +const plugins = require('./electron-plugins'); + +const contextApi: { + [plugin: string]: { [functionName: string]: () => Promise }; +} = {}; +for (const pluginKey of Object.keys(plugins)) { + for (const classKey of Object.keys(plugins[pluginKey]).filter(className => className !== 'default')) { + const functionList = Object.getOwnPropertyNames(plugins[pluginKey][classKey].prototype).filter(v => v !== 'constructor'); + if (!contextApi[classKey]) { + contextApi[classKey] = {}; + } + for (const functionName of functionList) { + if (!contextApi[classKey][functionName]) { + contextApi[classKey][functionName] = (...args) => ipcRenderer.invoke(`${classKey}-${functionName}`, ...args); + } + } + } +} +contextBridge.exposeInMainWorld('CapacitorCustomPlatform', { + name: 'electron', + plugins: contextApi, +}); +//////////////////////////////////////////////////////// diff --git a/example/electron/src/setup.ts b/example/electron/src/setup.ts new file mode 100644 index 00000000..5423a50a --- /dev/null +++ b/example/electron/src/setup.ts @@ -0,0 +1,216 @@ +import type { CapacitorElectronConfig } from '@capacitor-community/electron'; +import { CapElectronEventEmitter, CapacitorSplashScreen, setupCapacitorElectronPlugins } from '@capacitor-community/electron'; +import chokidar from 'chokidar'; +import type { MenuItemConstructorOptions } from 'electron'; +import { app, BrowserWindow, Menu, MenuItem, nativeImage, Tray, session } from 'electron'; +import electronIsDev from 'electron-is-dev'; +import electronServe from 'electron-serve'; +import windowStateKeeper from 'electron-window-state'; +import { join } from 'path'; + +// Define components for a watcher to detect when the webapp is changed so we can reload in Dev mode. +const reloadWatcher = { + debouncer: null, + ready: false, + watcher: null, +}; +export function setupReloadWatcher(electronCapacitorApp: ElectronCapacitorApp): void { + reloadWatcher.watcher = chokidar + .watch(join(app.getAppPath(), 'app'), { + ignored: /[/\\]\./, + persistent: true, + }) + .on('ready', () => { + reloadWatcher.ready = true; + }) + .on('all', (_event, _path) => { + if (reloadWatcher.ready) { + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = setTimeout(async () => { + electronCapacitorApp.getMainWindow().webContents.reload(); + reloadWatcher.ready = false; + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = null; + reloadWatcher.watcher = null; + setupReloadWatcher(electronCapacitorApp); + }, 1500); + } + }); +} + +// Define our class to manage our app. +export class ElectronCapacitorApp { + private MainWindow: BrowserWindow | null = null; + private SplashScreen: CapacitorSplashScreen | null = null; + private TrayIcon: Tray | null = null; + private CapacitorFileConfig: CapacitorElectronConfig; + private TrayMenuTemplate: (MenuItem | MenuItemConstructorOptions)[] = [new MenuItem({ label: 'Quit App', role: 'quit' })]; + private AppMenuBarMenuTemplate: (MenuItem | MenuItemConstructorOptions)[] = [{ role: process.platform === 'darwin' ? 'appMenu' : 'fileMenu' }, { role: 'viewMenu' }]; + private mainWindowState; + private loadWebApp; + private customScheme: string; + + constructor( + capacitorFileConfig: CapacitorElectronConfig, + trayMenuTemplate?: (MenuItemConstructorOptions | MenuItem)[], + appMenuBarMenuTemplate?: (MenuItemConstructorOptions | MenuItem)[], + ) { + this.CapacitorFileConfig = capacitorFileConfig; + + this.customScheme = this.CapacitorFileConfig.electron?.customUrlScheme ?? 'capacitor-electron'; + + if (trayMenuTemplate) { + this.TrayMenuTemplate = trayMenuTemplate; + } + + if (appMenuBarMenuTemplate) { + this.AppMenuBarMenuTemplate = appMenuBarMenuTemplate; + } + + // Setup our web app loader, this lets us load apps like react, vue, and angular without changing their build chains. + this.loadWebApp = electronServe({ + directory: join(app.getAppPath(), 'app'), + scheme: this.customScheme, + }); + } + + // Helper function to load in the app. + private async loadMainWindow(thisRef: any) { + await thisRef.loadWebApp(thisRef.MainWindow); + } + + // Expose the mainWindow ref for use outside of the class. + getMainWindow(): BrowserWindow { + return this.MainWindow; + } + + getCustomURLScheme(): string { + return this.customScheme; + } + + async init(): Promise { + const icon = nativeImage.createFromPath(join(app.getAppPath(), 'assets', process.platform === 'win32' ? 'appIcon.ico' : 'appIcon.png')); + this.mainWindowState = windowStateKeeper({ + defaultWidth: 1000, + defaultHeight: 800, + }); + // Setup preload script path and construct our main window. + const preloadPath = join(app.getAppPath(), 'build', 'src', 'preload.js'); + this.MainWindow = new BrowserWindow({ + icon, + show: false, + x: this.mainWindowState.x, + y: this.mainWindowState.y, + width: this.mainWindowState.width, + height: this.mainWindowState.height, + webPreferences: { + nodeIntegration: true, + contextIsolation: true, + // Use preload to inject the electron varriant overrides for capacitor plugins. + // preload: join(app.getAppPath(), "node_modules", "@capacitor-community", "electron", "dist", "runtime", "electron-rt.js"), + preload: preloadPath, + }, + }); + this.mainWindowState.manage(this.MainWindow); + + if (this.CapacitorFileConfig.electron?.backgroundColor) { + this.MainWindow.setBackgroundColor(this.CapacitorFileConfig.electron.backgroundColor); + } + + // If we close the main window with the splashscreen enabled we need to destory the ref. + this.MainWindow.on('closed', () => { + if (this.SplashScreen?.getSplashWindow() && !this.SplashScreen.getSplashWindow().isDestroyed()) { + this.SplashScreen.getSplashWindow().close(); + } + }); + + // When the tray icon is enabled, setup the options. + if (this.CapacitorFileConfig.electron?.trayIconAndMenuEnabled) { + this.TrayIcon = new Tray(icon); + this.TrayIcon.on('double-click', () => { + if (this.MainWindow) { + if (this.MainWindow.isVisible()) { + this.MainWindow.hide(); + } else { + this.MainWindow.show(); + this.MainWindow.focus(); + } + } + }); + this.TrayIcon.on('click', () => { + if (this.MainWindow) { + if (this.MainWindow.isVisible()) { + this.MainWindow.hide(); + } else { + this.MainWindow.show(); + this.MainWindow.focus(); + } + } + }); + this.TrayIcon.setToolTip(app.getName()); + this.TrayIcon.setContextMenu(Menu.buildFromTemplate(this.TrayMenuTemplate)); + } + + // Setup the main manu bar at the top of our window. + Menu.setApplicationMenu(Menu.buildFromTemplate(this.AppMenuBarMenuTemplate)); + + // If the splashscreen is enabled, show it first while the main window loads then dwitch it out for the main window, or just load the main window from the start. + if (this.CapacitorFileConfig.electron?.splashScreenEnabled) { + this.SplashScreen = new CapacitorSplashScreen({ + imageFilePath: join(app.getAppPath(), 'assets', this.CapacitorFileConfig.electron?.splashScreenImageName ?? 'splash.png'), + windowWidth: 400, + windowHeight: 400, + }); + this.SplashScreen.init(this.loadMainWindow, this); + } else { + this.loadMainWindow(this); + } + + // Security + this.MainWindow.webContents.setWindowOpenHandler(details => { + if (!details.url.includes(this.customScheme)) { + return { action: 'deny' }; + } else { + return { action: 'allow' }; + } + }); + this.MainWindow.webContents.on('will-navigate', (event, _newURL) => { + if (!this.MainWindow.webContents.getURL().includes(this.customScheme)) { + event.preventDefault(); + } + }); + + // Link electron plugins into the system. + setupCapacitorElectronPlugins(); + + // When the web app is loaded we hide the splashscreen if needed and show the mainwindow. + this.MainWindow.webContents.on('dom-ready', () => { + if (this.CapacitorFileConfig.electron?.splashScreenEnabled) { + this.SplashScreen.getSplashWindow().hide(); + } + if (!this.CapacitorFileConfig.electron?.hideMainWindowOnLaunch) { + this.MainWindow.show(); + } + setTimeout(() => { + if (electronIsDev) { + this.MainWindow.webContents.openDevTools(); + } + CapElectronEventEmitter.emit('CAPELECTRON_DeeplinkListenerInitialized', ''); + }, 400); + }); + } +} + +// Set a CSP up for our application based on the custom scheme +export function setupContentSecurityPolicy(customScheme: string): void { + session.defaultSession.webRequest.onHeadersReceived((details, callback) => { + callback({ + responseHeaders: { + ...details.responseHeaders, + 'Content-Security-Policy': [ + electronIsDev ? `default-src ${customScheme}://* 'unsafe-inline' devtools://* 'unsafe-eval' data:` : `default-src ${customScheme}://* 'unsafe-inline' data:`, + ], + }, + }); + }); +} diff --git a/example/electron/tsconfig.json b/example/electron/tsconfig.json new file mode 100644 index 00000000..ef90ab39 --- /dev/null +++ b/example/electron/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compileOnSave": true, + "include": ["./src/**/*", "./capacitor.config.ts", "./capacitor.config.js"], + "compilerOptions": { + "outDir": "./build", + "importHelpers": true, + "target": "ES2017", + "module": "CommonJS", + "moduleResolution": "node", + "esModuleInterop": true, + "typeRoots": ["./node_modules/@types"], + "allowJs": true, + "rootDir": "." + } +} diff --git a/example/package-lock.json b/example/package-lock.json index 2aef2f89..26e7d183 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -8,6 +8,7 @@ "name": "http-example", "version": "0.1.0", "dependencies": { + "@capacitor-community/electron": "^4.0.3", "@capacitor-community/http": "file:../", "@capacitor/android": "^3.3.2", "@capacitor/core": "^3.3.2", @@ -26,16 +27,20 @@ } }, "..": { + "name": "@capacitor-community/http", "version": "1.4.1", "license": "MIT", "dependencies": { "@capacitor/android": "^3.0.0", "@capacitor/core": "^3.0.0", "@capacitor/filesystem": "^1.0.0", - "@capacitor/ios": "^3.0.0" + "@capacitor/ios": "^3.0.0", + "node-fetch": "^2.6.6" }, "devDependencies": { "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", "all-contributors-cli": "^6.20.0", "husky": "^6.0.0", "prettier": "^2.3.0", @@ -1903,6 +1908,86 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@capacitor-community/electron": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", + "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "dependencies": { + "@capacitor/cli": "^3.1.1", + "@capacitor/core": "^3.1.1", + "@ionic/utils-fs": "~3.1.5", + "chalk": "~4.1.1", + "electron-is-dev": "~2.0.0", + "events": "~3.3.0", + "fs-extra": "~9.1.0", + "mime-types": "~2.1.31", + "ora": "~5.4.1" + } + }, + "node_modules/@capacitor-community/electron/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@capacitor-community/electron/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@capacitor-community/electron/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@capacitor-community/electron/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@capacitor-community/electron/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@capacitor-community/electron/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@capacitor-community/http": { "resolved": "..", "link": true @@ -1919,7 +2004,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.3.2.tgz", "integrity": "sha512-LmH3DzuwNL3k995CgAs20KXjQhDWrQCQgur3M8nqIKecZk0xCoSGghht+rEK8/Gqn0XqdBGdgUgop+nep17edg==", - "dev": true, "dependencies": { "@ionic/cli-framework-output": "^2.2.1", "@ionic/utils-fs": "^3.1.5", @@ -2123,7 +2207,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", - "dev": true, "dependencies": { "@ionic/utils-terminal": "2.3.1", "debug": "^4.0.0", @@ -2161,7 +2244,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", - "dev": true, "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -2174,7 +2256,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", - "dev": true, "dependencies": { "debug": "^4.0.0", "fs-extra": "^9.0.0", @@ -2188,7 +2269,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", - "dev": true, "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -2201,7 +2281,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", - "dev": true, "dependencies": { "@ionic/utils-object": "2.1.5", "@ionic/utils-terminal": "2.3.1", @@ -2218,7 +2297,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", - "dev": true, "dependencies": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -2231,7 +2309,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", - "dev": true, "dependencies": { "@ionic/utils-array": "2.1.5", "@ionic/utils-fs": "3.1.5", @@ -2250,7 +2327,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", - "dev": true, "dependencies": { "debug": "^4.0.0", "signal-exit": "^3.0.3", @@ -4270,6 +4346,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -4286,7 +4374,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -4540,7 +4627,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } @@ -4576,7 +4662,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -5327,7 +5412,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -5368,7 +5452,6 @@ "version": "1.6.51", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, "engines": { "node": ">=0.6" } @@ -5402,6 +5485,39 @@ "file-uri-to-path": "1.0.0" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -5483,7 +5599,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "dev": true, "dependencies": { "big-integer": "1.6.x" }, @@ -5665,7 +5780,6 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, "engines": { "node": "*" } @@ -5951,7 +6065,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, "engines": { "node": ">=10" } @@ -6115,6 +6228,28 @@ "node": ">=6" } }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -6173,6 +6308,14 @@ "node": ">=8" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -6267,7 +6410,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, "engines": { "node": ">= 6" } @@ -6613,7 +6755,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7128,7 +7269,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -7334,6 +7474,14 @@ "which": "bin/which" } }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -7790,6 +7938,14 @@ "node": ">=0.10.0" } }, + "node_modules/electron-is-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", + "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/electron-to-chromium": { "version": "1.3.901", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.901.tgz", @@ -7800,7 +7956,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", - "dev": true, "dependencies": { "sax": "1.1.4" }, @@ -7950,7 +8105,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, "engines": { "node": ">=6" } @@ -9069,7 +9223,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -9531,7 +9684,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "dependencies": { "pend": "~1.2.0" } @@ -10067,7 +10219,6 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -10082,7 +10233,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -10347,8 +10497,7 @@ "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/growly": { "version": "1.3.0", @@ -11032,7 +11181,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -11202,14 +11350,12 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-ip": { "version": "4.3.0", @@ -11476,7 +11622,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, "bin": { "is-docker": "cli.js" }, @@ -11512,7 +11657,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -11538,6 +11682,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -11746,6 +11898,17 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-weakref": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", @@ -11771,7 +11934,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, "dependencies": { "is-docker": "^2.0.0" }, @@ -11788,8 +11950,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "node_modules/isobject": { "version": "3.0.1", @@ -13949,7 +14110,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -13989,7 +14149,6 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", - "dev": true, "engines": { "node": ">=6" } @@ -14152,6 +14311,85 @@ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loglevel": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", @@ -14189,7 +14427,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -14402,7 +14639,6 @@ "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -14411,7 +14647,6 @@ "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "dependencies": { "mime-db": "1.51.0" }, @@ -14423,7 +14658,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -14524,7 +14758,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -14572,7 +14805,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -14690,8 +14922,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "6.2.3", @@ -14757,7 +14988,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.5.0.tgz", "integrity": "sha512-YYsYYAljk70N+FJLeY5KuafsBit7agOBR3ch1KTXOaKkREkM49yCwJIwVz2faoWpJ2MeyLdXltk5PskUuPQqZA==", - "dev": true, "dependencies": { "@ionic/utils-fs": "^3.1.5", "@ionic/utils-terminal": "^2.3.1", @@ -15313,7 +15543,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -15328,7 +15557,6 @@ "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -15391,6 +15619,92 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -15658,7 +15972,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -15703,8 +16016,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "node_modules/performance-now": { "version": "2.1.0", @@ -15913,7 +16225,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", - "dev": true, "dependencies": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" @@ -17398,7 +17709,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -17411,7 +17721,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, "engines": { "node": ">=6" } @@ -18080,7 +18389,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18490,6 +18798,18 @@ "node": ">=6" } }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -19091,8 +19411,7 @@ "node_modules/sax": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=", - "dev": true + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" }, "node_modules/saxes": { "version": "5.0.1", @@ -19152,7 +19471,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -19363,7 +19681,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -19375,7 +19692,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -19410,8 +19726,7 @@ "node_modules/signal-exit": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -19431,8 +19746,7 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/slash": { "version": "3.0.0", @@ -19447,7 +19761,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -19464,7 +19777,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -19479,7 +19791,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -19490,8 +19801,7 @@ "node_modules/slice-ansi/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/snapdragon": { "version": "0.8.2", @@ -19883,7 +20193,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, "dependencies": { "readable-stream": "^3.0.0" } @@ -20144,7 +20453,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -20153,7 +20461,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -20192,7 +20499,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -20205,8 +20511,7 @@ "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string.prototype.matchall": { "version": "4.0.6", @@ -20271,7 +20576,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -20581,7 +20885,6 @@ "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -20598,7 +20901,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -20927,7 +21229,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, "dependencies": { "readable-stream": "3" } @@ -21076,7 +21377,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, "bin": { "tree-kill": "cli.js" } @@ -21194,10 +21494,12 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -21371,7 +21673,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -21443,7 +21744,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, "engines": { "node": ">=8" } @@ -21576,8 +21876,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/util.promisify": { "version": "1.0.0", @@ -22041,6 +22340,14 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -23256,7 +23563,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -23553,7 +23859,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -23570,7 +23875,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -23585,7 +23889,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -23596,8 +23899,7 @@ "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/wrappy": { "version": "1.0.2", @@ -23636,7 +23938,6 @@ "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -23649,7 +23950,6 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -23658,7 +23958,6 @@ "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true, "engines": { "node": ">=4.0" } @@ -23687,8 +23986,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { "version": "1.10.2", @@ -23747,7 +24045,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -25062,6 +25359,67 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@capacitor-community/electron": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", + "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "requires": { + "@capacitor/cli": "^3.1.1", + "@capacitor/core": "^3.1.1", + "@ionic/utils-fs": "~3.1.5", + "chalk": "~4.1.1", + "electron-is-dev": "~2.0.0", + "events": "~3.3.0", + "fs-extra": "~9.1.0", + "mime-types": "~2.1.31", + "ora": "~5.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@capacitor-community/http": { "version": "file:..", "requires": { @@ -25070,8 +25428,11 @@ "@capacitor/filesystem": "^1.0.0", "@capacitor/ios": "^3.0.0", "@ionic/prettier-config": "^1.0.1", + "@types/node": "^17.0.8", + "@types/node-fetch": "^2.5.12", "all-contributors-cli": "^6.20.0", "husky": "^6.0.0", + "node-fetch": "^2.6.6", "prettier": "^2.3.0", "prettier-plugin-java": "^1.1.1", "pretty-quick": "^3.1.0", @@ -25091,7 +25452,6 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.3.2.tgz", "integrity": "sha512-LmH3DzuwNL3k995CgAs20KXjQhDWrQCQgur3M8nqIKecZk0xCoSGghht+rEK8/Gqn0XqdBGdgUgop+nep17edg==", - "dev": true, "requires": { "@ionic/cli-framework-output": "^2.2.1", "@ionic/utils-fs": "^3.1.5", @@ -25253,7 +25613,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", - "dev": true, "requires": { "@ionic/utils-terminal": "2.3.1", "debug": "^4.0.0", @@ -25284,7 +25643,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", - "dev": true, "requires": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -25294,7 +25652,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", - "dev": true, "requires": { "debug": "^4.0.0", "fs-extra": "^9.0.0", @@ -25305,7 +25662,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", - "dev": true, "requires": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -25315,7 +25671,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", - "dev": true, "requires": { "@ionic/utils-object": "2.1.5", "@ionic/utils-terminal": "2.3.1", @@ -25329,7 +25684,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", - "dev": true, "requires": { "debug": "^4.0.0", "tslib": "^2.0.1" @@ -25339,7 +25693,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", - "dev": true, "requires": { "@ionic/utils-array": "2.1.5", "@ionic/utils-fs": "3.1.5", @@ -25355,7 +25708,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", - "dev": true, "requires": { "debug": "^4.0.0", "signal-exit": "^3.0.3", @@ -26909,6 +27261,14 @@ "dev": true, "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, "ansi-html": { @@ -26920,8 +27280,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -27124,8 +27483,7 @@ "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, "async": { "version": "2.6.3", @@ -27157,8 +27515,7 @@ "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "atob": { "version": "2.1.2", @@ -27770,8 +28127,7 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "batch": { "version": "0.6.1", @@ -27794,8 +28150,7 @@ "big-integer": { "version": "1.6.51", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" }, "big.js": { "version": "5.2.2", @@ -27820,6 +28175,27 @@ "file-uri-to-path": "1.0.0" } }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -27897,7 +28273,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "dev": true, "requires": { "big-integer": "1.6.x" } @@ -28050,8 +28425,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-from": { "version": "1.1.2", @@ -28274,8 +28648,7 @@ "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "chrome-trace-event": { "version": "1.0.3", @@ -28408,6 +28781,19 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -28456,6 +28842,11 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -28536,8 +28927,7 @@ "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" }, "common-tags": { "version": "1.8.2", @@ -28840,7 +29230,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -29246,7 +29635,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -29401,6 +29789,14 @@ } } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -29781,6 +30177,11 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, + "electron-is-dev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-2.0.0.tgz", + "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==" + }, "electron-to-chromium": { "version": "1.3.901", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.901.tgz", @@ -29791,7 +30192,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", - "dev": true, "requires": { "sax": "1.1.4" } @@ -29917,8 +30317,7 @@ "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" }, "errno": { "version": "0.1.8", @@ -30729,8 +31128,7 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "eventsource": { "version": "1.1.0", @@ -31125,7 +31523,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "requires": { "pend": "~1.2.0" } @@ -31562,7 +31959,6 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -31574,7 +31970,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "requires": { "minipass": "^3.0.0" } @@ -31779,8 +32174,7 @@ "graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "growly": { "version": "1.3.0", @@ -32338,8 +32732,7 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "iferr": { "version": "0.1.5", @@ -32461,14 +32854,12 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "internal-ip": { "version": "4.3.0", @@ -32666,8 +33057,7 @@ "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extendable": { "version": "1.0.1", @@ -32687,8 +33077,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-generator-fn": { "version": "2.1.0", @@ -32705,6 +33094,11 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -32847,6 +33241,11 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, "is-weakref": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", @@ -32866,7 +33265,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, "requires": { "is-docker": "^2.0.0" } @@ -32880,8 +33278,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -34509,7 +34906,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -34540,8 +34936,7 @@ "kleur": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", - "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", - "dev": true + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" }, "klona": { "version": "2.0.5", @@ -34683,6 +35078,60 @@ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "loglevel": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", @@ -34710,7 +35159,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -34892,14 +35340,12 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "requires": { "mime-db": "1.51.0" } @@ -34907,8 +35353,7 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mini-css-extract-plugin": { "version": "0.11.3", @@ -34986,7 +35431,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -35022,7 +35466,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -35129,8 +35572,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -35184,7 +35626,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.5.0.tgz", "integrity": "sha512-YYsYYAljk70N+FJLeY5KuafsBit7agOBR3ch1KTXOaKkREkM49yCwJIwVz2faoWpJ2MeyLdXltk5PskUuPQqZA==", - "dev": true, "requires": { "@ionic/utils-fs": "^3.1.5", "@ionic/utils-terminal": "^2.3.1", @@ -35637,7 +36078,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -35646,7 +36086,6 @@ "version": "7.4.2", "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -35693,6 +36132,67 @@ "word-wrap": "^1.2.3" } }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -35910,8 +36410,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -35947,8 +36446,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { "version": "2.1.0", @@ -36107,7 +36605,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", - "dev": true, "requires": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" @@ -37344,7 +37841,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -37353,8 +37849,7 @@ "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" } } }, @@ -37894,7 +38389,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -38215,6 +38709,15 @@ } } }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -38684,8 +39187,7 @@ "sax": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=", - "dev": true + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" }, "saxes": { "version": "5.0.1", @@ -38735,7 +39237,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -38924,7 +39425,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -38932,8 +39432,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shell-quote": { "version": "1.7.2", @@ -38962,8 +39461,7 @@ "signal-exit": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "simple-swizzle": { "version": "0.2.2", @@ -38985,8 +39483,7 @@ "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "slash": { "version": "3.0.0", @@ -38998,7 +39495,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -39009,7 +39505,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -39018,7 +39513,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -39026,8 +39520,7 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, @@ -39373,7 +39866,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, "requires": { "readable-stream": "^3.0.0" } @@ -39607,7 +40099,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" }, @@ -39615,8 +40106,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -39640,7 +40130,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -39650,8 +40139,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" } } }, @@ -39706,7 +40194,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -39954,7 +40441,6 @@ "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -39967,8 +40453,7 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" } } }, @@ -40198,7 +40683,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, "requires": { "readable-stream": "3" } @@ -40320,8 +40804,7 @@ "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" }, "tryer": { "version": "1.0.1", @@ -40414,10 +40897,12 @@ "dev": true }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "peer": true }, "type-is": { "version": "1.6.18", @@ -40552,8 +41037,7 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unpipe": { "version": "1.0.0", @@ -40610,8 +41094,7 @@ "untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" }, "upath": { "version": "1.2.0", @@ -40718,8 +41201,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", @@ -41114,6 +41596,14 @@ "minimalistic-assert": "^1.0.0" } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -42091,7 +42581,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -42360,7 +42849,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -42371,7 +42859,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -42380,7 +42867,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -42388,8 +42874,7 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, @@ -42430,7 +42915,6 @@ "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -42439,16 +42923,14 @@ "xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" } } }, "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xmlchars": { "version": "2.2.0", @@ -42471,8 +42953,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yaml": { "version": "1.10.2", @@ -42521,7 +43002,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/example/package.json b/example/package.json index 4518f743..604a6782 100644 --- a/example/package.json +++ b/example/package.json @@ -3,10 +3,11 @@ "version": "0.1.0", "private": true, "dependencies": { + "@capacitor-community/electron": "^4.0.3", + "@capacitor-community/http": "file:../", "@capacitor/android": "^3.3.2", "@capacitor/core": "^3.3.2", "@capacitor/ios": "^3.3.2", - "@capacitor-community/http": "file:../", "@ionic/react": "^6.0.0-rc.3", "react": "^17.0.2", "react-dom": "^17.0.2" diff --git a/example/src/App.tsx b/example/src/App.tsx index 132bdc27..4389f49f 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -1,7 +1,7 @@ -import { IonButton, IonCol, IonContent, IonGrid, IonHeader, IonInput, IonItem, IonLabel, IonRow, IonTextarea, IonTitle, IonToolbar } from '@ionic/react'; -import React, { useState } from 'react'; +import { IonButton, IonCol, IonContent, IonGrid, IonHeader, IonInput, IonItem, IonLabel, IonRow, IonTextarea, IonTitle, IonToolbar, IonSpinner, IonText } from '@ionic/react'; +import React, { useCallback, useState } from 'react'; -import { Http } from '@capacitor-community/http'; +import { Http, HttpResponse } from '@capacitor-community/http'; const defaultJsonBody = { foo: 'bar', @@ -13,6 +13,9 @@ const defaultJsonBody = { const App = () => { const [url, setUrl] = useState('http://localhost:3000/'); const [body, setBody] = useState(null); + const [response, setResponse] = useState(); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(); // Do this better...I'm sorry coding gods :'( const [key1, setKey1] = useState(''); @@ -20,6 +23,16 @@ const App = () => { const [value1, setValue1] = useState(''); const [value2, setValue2] = useState(''); + const handleRequest = useCallback((url: string, method: string, headers: Map, body?: any) => { + setError(undefined); + setLoading(true); + + doRequest(url, method, headers, body) + .then(value => setResponse(value)) + .catch(err => setError(err)) + .finally(() => setLoading(false)); + }, []); + return ( @@ -33,6 +46,13 @@ const App = () => {

API Url

+ {loading && ( +
+ + Loading... +
+ )} + {error && Error: {error.message ?? error.toString()}} setUrl(e.detail.value!)} /> @@ -78,9 +98,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'GET', map, body); + handleRequest(url, 'GET', map, body); }} > GET @@ -90,9 +111,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'POST', map, body); + handleRequest(url, 'POST', map, body); }} > POST @@ -102,9 +124,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'PUT', map, body); + handleRequest(url, 'PUT', map, body); }} > PUT @@ -116,9 +139,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'PATCH', map, body); + handleRequest(url, 'PATCH', map, body); }} > PATCH @@ -128,9 +152,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'DELETE', map, body); + handleRequest(url, 'DELETE', map, body); }} > DELETE @@ -140,9 +165,10 @@ const App = () => { { const map = makeHeaderMap(key1, key2, value1, value2); - doRequest(url, 'LINK', map, body); + handleRequest(url, 'LINK', map, body); }} > LINK @@ -154,6 +180,7 @@ const App = () => { { console.log('does nothing for now...'); }} @@ -165,6 +192,7 @@ const App = () => { { console.log('does nothing for now...'); }} @@ -198,6 +226,21 @@ const App = () => {
+ {response && ( +
+

Status: {response.status}

+

Headers:

+
    + {Object.entries(response.headers).map(([key, value], i) => ( +
  • + {key}: {value} +
  • + ))} +
+

Data:

+ {typeof response.data === typeof {} ? JSON.stringify(response.data, undefined, '\t') : response.data} +
+ )} ); @@ -212,16 +255,16 @@ const makeHeaderMap = (key1: string, key2: string, value1: string, value2: strin return output; }; -const doRequest = (url: string, method: string, headers: Map, body?: any) => { +const doRequest = (url: string, method: string, headers: Map, body?: any): Promise => { if (body) { - Http.request({ + return Http.request({ url, method, headers: Object.fromEntries(headers), data: body, }); } else { - Http.request({ + return Http.request({ url, method, headers: Object.fromEntries(headers), From 1718da7bcd693d58383ed42c5145f65d9dff3406 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Sun, 9 Jan 2022 17:34:09 +0100 Subject: [PATCH 5/8] Prevent memory leaks as much as possible - Added 'dispose' method(s) - Added FinalizationRegistry --- electron/src/index.ts | 4 ++++ src/electronHelper.ts | 31 ++++++++++++++++++++++++------- src/finalizationregistry.ts | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 src/finalizationregistry.ts diff --git a/electron/src/index.ts b/electron/src/index.ts index 42858574..ffdb569d 100644 --- a/electron/src/index.ts +++ b/electron/src/index.ts @@ -43,6 +43,10 @@ class FetchHelper { }; } + dispose(id: string): void { + FetchHelper._responses.delete(id); + } + private static _cloneResponse(response: Response): ReturnType { const headers = Object.fromEntries([...response.headers.entries()]); const id = FetchHelper._id(); diff --git a/src/electronHelper.ts b/src/electronHelper.ts index 3448bd82..738a1154 100644 --- a/src/electronHelper.ts +++ b/src/electronHelper.ts @@ -4,11 +4,13 @@ import { Response as NodeFetchResponse, } from 'node-fetch'; +import FinalizationRegistry from './finalizationregistry'; + declare global { interface Window { CapacitorCustomPlatform?: { - plugins?: { - Fetch: { + plugins: { + Fetch?: { fetch( url: RequestInfo, init?: NodeFetchRequestInit, @@ -17,6 +19,7 @@ declare global { getJson(id: string): Promise>; getBuffer(id: string): Promise; getText(id: string): Promise; + dispose(id: string): void; }; }; }; @@ -33,9 +36,17 @@ export type Response = ReturnType & { json: () => Promise>; text: () => Promise; blob: () => Promise; + dispose: () => void; headers: Headers; }; +const finalizationRegistry = + 'FinalizationRegistry' in window + ? new FinalizationRegistry(id => + window.CapacitorCustomPlatform?.plugins.Fetch?.dispose(id), + ) + : undefined; + const electronFetch = ( url: RequestInfo, init?: RequestInit, @@ -52,14 +63,15 @@ const electronFetch = ( ).then((response: ReturnType): Response => { const { id, headers, ...responseData } = response; - return { + const webResponse = { ...responseData, headers: new Headers(headers), - json: () => window.CapacitorCustomPlatform?.plugins?.Fetch?.getJson(id), - text: () => window.CapacitorCustomPlatform?.plugins?.Fetch?.getText(id), + dispose: () => window.CapacitorCustomPlatform?.plugins.Fetch?.dispose(id), + json: () => window.CapacitorCustomPlatform?.plugins.Fetch?.getJson(id), + text: () => window.CapacitorCustomPlatform?.plugins.Fetch?.getText(id), blob: async (): Promise => { const blobObj = - await window.CapacitorCustomPlatform?.plugins?.Fetch.getBlob(id); + await window.CapacitorCustomPlatform?.plugins.Fetch?.getBlob(id); if (!blobObj) { throw new Error( @@ -72,10 +84,15 @@ const electronFetch = ( return new Blob([buffer], { type }); }, } as Response; + + // Dispose of the response on the Electron side when this object gets garbage collected + finalizationRegistry?.register(webResponse, id); + + return webResponse; }); }; // @ts-ignore -export default window.CapacitorCustomPlatform?.plugins?.Fetch +export default window.CapacitorCustomPlatform?.plugins.Fetch ? electronFetch : undefined; diff --git a/src/finalizationregistry.ts b/src/finalizationregistry.ts new file mode 100644 index 00000000..36b38822 --- /dev/null +++ b/src/finalizationregistry.ts @@ -0,0 +1,35 @@ +export interface FinalizationRegistry { + readonly [Symbol.toStringTag]: 'FinalizationRegistry'; + + /** + * Registers an object with the registry. + * @param target The target object to register. + * @param heldValue The value to pass to the finalizer for this object. This cannot be the + * target object. + * @param unregisterToken The token to pass to the unregister method to unregister the target + * object. If provided (and not undefined), this must be an object. If not provided, the target + * cannot be unregistered. + */ + register(target: object, heldValue: any, unregisterToken?: object): void; + + /** + * Unregisters an object from the registry. + * @param unregisterToken The token that was used as the unregisterToken argument when calling + * register to register the target object. + */ + unregister(unregisterToken: object): void; +} + +export interface FinalizationRegistryConstructor { + readonly prototype: FinalizationRegistry; + + /** + * Creates a finalization registry with an associated cleanup callback + * @param cleanupCallback The callback to call after an object in the registry has been reclaimed. + */ + new (cleanupCallback: (heldValue: any) => void): FinalizationRegistry; +} + +declare var FinalizationRegistry: FinalizationRegistryConstructor; + +export default FinalizationRegistry; From e5bc7d06922f894adb5b2f9c00d64b4684cfb057 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Mon, 24 Jan 2022 14:27:39 +0100 Subject: [PATCH 6/8] Updated Electron --- example/electron/package-lock.json | 30 +++++++++++++++--------------- example/electron/package.json | 2 +- example/package-lock.json | 30 +++++++++++++++--------------- example/package.json | 2 +- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/example/electron/package-lock.json b/example/electron/package-lock.json index 58d1a3cc..7c71bea9 100644 --- a/example/electron/package-lock.json +++ b/example/electron/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@capacitor-community/electron": "^4.0.1", + "@capacitor-community/electron": "^4.1.0", "@capacitor-community/http": "file:../..", "chokidar": "~3.5.2", "electron-is-dev": "~2.0.0", @@ -52,18 +52,18 @@ } }, "node_modules/@capacitor-community/electron": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", - "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.1.0.tgz", + "integrity": "sha512-zMQaUOnsjUmgHXGXac4g/xKYC1ujjzyiqJjnAEm3y4HZqhTr2DW7jjrXV/eS+9uHgonLH7+IwaOZ4sGXHmpbyA==", "dependencies": { - "@capacitor/cli": "^3.1.1", - "@capacitor/core": "^3.1.1", + "@capacitor/cli": "^3.2.2", + "@capacitor/core": "^3.2.2", "@ionic/utils-fs": "~3.1.5", - "chalk": "~4.1.1", + "chalk": "~4.1.2", "electron-is-dev": "~2.0.0", "events": "~3.3.0", "fs-extra": "~9.1.0", - "mime-types": "~2.1.31", + "mime-types": "~2.1.32", "ora": "~5.4.1" } }, @@ -5177,18 +5177,18 @@ }, "dependencies": { "@capacitor-community/electron": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", - "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.1.0.tgz", + "integrity": "sha512-zMQaUOnsjUmgHXGXac4g/xKYC1ujjzyiqJjnAEm3y4HZqhTr2DW7jjrXV/eS+9uHgonLH7+IwaOZ4sGXHmpbyA==", "requires": { - "@capacitor/cli": "^3.1.1", - "@capacitor/core": "^3.1.1", + "@capacitor/cli": "^3.2.2", + "@capacitor/core": "^3.2.2", "@ionic/utils-fs": "~3.1.5", - "chalk": "~4.1.1", + "chalk": "~4.1.2", "electron-is-dev": "~2.0.0", "events": "~3.3.0", "fs-extra": "~9.1.0", - "mime-types": "~2.1.31", + "mime-types": "~2.1.32", "ora": "~5.4.1" } }, diff --git a/example/electron/package.json b/example/electron/package.json index 657d396a..a04d26e5 100644 --- a/example/electron/package.json +++ b/example/electron/package.json @@ -20,7 +20,7 @@ "electron:make": "npm run build && electron-builder build -c ./electron-builder.config.json -p always" }, "dependencies": { - "@capacitor-community/electron": "^4.0.1", + "@capacitor-community/electron": "^4.1.0", "@capacitor-community/http": "file:../..", "chokidar": "~3.5.2", "electron-is-dev": "~2.0.0", diff --git a/example/package-lock.json b/example/package-lock.json index 26e7d183..9126e3ac 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -8,7 +8,7 @@ "name": "http-example", "version": "0.1.0", "dependencies": { - "@capacitor-community/electron": "^4.0.3", + "@capacitor-community/electron": "^4.1.0", "@capacitor-community/http": "file:../", "@capacitor/android": "^3.3.2", "@capacitor/core": "^3.3.2", @@ -1909,18 +1909,18 @@ "dev": true }, "node_modules/@capacitor-community/electron": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", - "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.1.0.tgz", + "integrity": "sha512-zMQaUOnsjUmgHXGXac4g/xKYC1ujjzyiqJjnAEm3y4HZqhTr2DW7jjrXV/eS+9uHgonLH7+IwaOZ4sGXHmpbyA==", "dependencies": { - "@capacitor/cli": "^3.1.1", - "@capacitor/core": "^3.1.1", + "@capacitor/cli": "^3.2.2", + "@capacitor/core": "^3.2.2", "@ionic/utils-fs": "~3.1.5", - "chalk": "~4.1.1", + "chalk": "~4.1.2", "electron-is-dev": "~2.0.0", "events": "~3.3.0", "fs-extra": "~9.1.0", - "mime-types": "~2.1.31", + "mime-types": "~2.1.32", "ora": "~5.4.1" } }, @@ -25360,18 +25360,18 @@ "dev": true }, "@capacitor-community/electron": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.0.3.tgz", - "integrity": "sha512-8Hb01jao78usnEfTQ9BXNAcjt7krxF4NuMSrWz1hhS8jemzzC2SHgJ7a+9InDlQ870JnCTXyfEXuQVvADWMipw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@capacitor-community/electron/-/electron-4.1.0.tgz", + "integrity": "sha512-zMQaUOnsjUmgHXGXac4g/xKYC1ujjzyiqJjnAEm3y4HZqhTr2DW7jjrXV/eS+9uHgonLH7+IwaOZ4sGXHmpbyA==", "requires": { - "@capacitor/cli": "^3.1.1", - "@capacitor/core": "^3.1.1", + "@capacitor/cli": "^3.2.2", + "@capacitor/core": "^3.2.2", "@ionic/utils-fs": "~3.1.5", - "chalk": "~4.1.1", + "chalk": "~4.1.2", "electron-is-dev": "~2.0.0", "events": "~3.3.0", "fs-extra": "~9.1.0", - "mime-types": "~2.1.31", + "mime-types": "~2.1.32", "ora": "~5.4.1" }, "dependencies": { diff --git a/example/package.json b/example/package.json index 604a6782..8ba4c4a1 100644 --- a/example/package.json +++ b/example/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@capacitor-community/electron": "^4.0.3", + "@capacitor-community/electron": "^4.1.0", "@capacitor-community/http": "file:../", "@capacitor/android": "^3.3.2", "@capacitor/core": "^3.3.2", From c2fa4d2e4f422af677df90e9c0178d347ad32e17 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Mon, 24 Jan 2022 14:28:31 +0100 Subject: [PATCH 7/8] Added body stream using events --- electron/src/index.ts | 69 +++++++++++++++++---- example/electron/src/rt/electron-rt.ts | 83 ++++++++++++++++++++++---- src/electronHelper.ts | 75 ++++++++++++++++++++++- src/web.ts | 5 +- 4 files changed, 207 insertions(+), 25 deletions(-) diff --git a/electron/src/index.ts b/electron/src/index.ts index ffdb569d..7e97b5ce 100644 --- a/electron/src/index.ts +++ b/electron/src/index.ts @@ -1,4 +1,5 @@ import fetch, { Response, RequestInfo, RequestInit } from 'node-fetch'; +import { EventEmitter } from 'stream'; import { randomBytes } from 'crypto'; type ReturnType = Response & { @@ -7,8 +8,17 @@ type ReturnType = Response & { id: string; }; -class FetchHelper { - private static _responses = new Map(); +interface BodyEvents { + error: (error: Error) => void; + data: (data: any) => void; + close: () => void; +} + +class FetchHelper extends EventEmitter { + private static _responses = new Map< + string, + { response: Response; bodyEvents?: BodyEvents } + >(); async fetch(url: RequestInfo, init?: RequestInit): Promise { const response = await fetch(url, init); @@ -19,21 +29,21 @@ class FetchHelper { async getBuffer(id: string): Promise { const response = await FetchHelper._getResponse(id); - return response.buffer(); + return response.response.buffer(); } async getText(id: string): Promise { const response = await FetchHelper._getResponse(id); - return response.text(); + return response.response.text(); } async getJson(id: string): Promise> { const response = await FetchHelper._getResponse(id); - return response.json(); + return response.response.json(); } async getBlob(id: string): Promise<{ type: string; buffer: Buffer }> { const response = await FetchHelper._getResponse(id); - const blob = await response.blob(); + const blob = await response.response.blob(); const buffer = Buffer.from(await blob.text(), 'utf-8'); @@ -43,15 +53,44 @@ class FetchHelper { }; } + async startBodyStream(id: string): Promise { + const response = await FetchHelper._getResponse(id, false); + + const eventHandlers: BodyEvents = { + error: err => { + this.emit(`body-${id}`, 'error', err); + }, + data: data => { + this.emit(`body-${id}`, 'data', data); + }, + close: () => { + this.emit(`body-${id}`, 'close'); + }, + }; + + response.response.body.on('close', eventHandlers.close); + response.response.body.on('error', eventHandlers.error); + response.response.body.on('data', eventHandlers.data); + + response.bodyEvents = eventHandlers; + } + async stopBodyStream(id: string): Promise { + const response = await FetchHelper._getResponse(id); + + Object.entries(response.bodyEvents ?? {}).forEach(([key, value]) => { + response.response.body.off(key, value); + }); + } + dispose(id: string): void { - FetchHelper._responses.delete(id); + FetchHelper._dispose(id); } private static _cloneResponse(response: Response): ReturnType { const headers = Object.fromEntries([...response.headers.entries()]); const id = FetchHelper._id(); - FetchHelper._responses.set(id, response); + FetchHelper._responses.set(id, { response, bodyEvents: undefined }); return { ...response, @@ -71,9 +110,19 @@ class FetchHelper { return randomBytes(8).toString('hex'); } - private static _getResponse(id: string): Promise { - const response = FetchHelper._responses.get(id); + private static _dispose(id: string): void { FetchHelper._responses.delete(id); + } + + private static _getResponse( + id: string, + dispose = true, + ): Promise<{ response: Response; bodyEvents?: BodyEvents }> { + const response = FetchHelper._responses.get(id); + + if (dispose) { + FetchHelper._dispose(id); + } return response ? Promise.resolve(response) diff --git a/example/electron/src/rt/electron-rt.ts b/example/electron/src/rt/electron-rt.ts index 72011996..b3e0c3f2 100644 --- a/example/electron/src/rt/electron-rt.ts +++ b/example/electron/src/rt/electron-rt.ts @@ -1,25 +1,84 @@ +import { randomBytes } from 'crypto'; import { ipcRenderer, contextBridge } from 'electron'; +import { EventEmitter } from 'events'; //////////////////////////////////////////////////////// // eslint-disable-next-line @typescript-eslint/no-var-requires const plugins = require('./electron-plugins'); +const randomId = (length = 5) => randomBytes(length).toString('hex'); + const contextApi: { [plugin: string]: { [functionName: string]: () => Promise }; } = {}; -for (const pluginKey of Object.keys(plugins)) { - for (const classKey of Object.keys(plugins[pluginKey]).filter(className => className !== 'default')) { - const functionList = Object.getOwnPropertyNames(plugins[pluginKey][classKey].prototype).filter(v => v !== 'constructor'); - if (!contextApi[classKey]) { - contextApi[classKey] = {}; - } - for (const functionName of functionList) { - if (!contextApi[classKey][functionName]) { - contextApi[classKey][functionName] = (...args) => ipcRenderer.invoke(`${classKey}-${functionName}`, ...args); + +Object.keys(plugins).forEach(pluginKey => { + Object.keys(plugins[pluginKey]) + .filter(className => className !== 'default') + .forEach(classKey => { + const functionList = Object.getOwnPropertyNames(plugins[pluginKey][classKey].prototype).filter(v => v !== 'constructor'); + + if (!contextApi[classKey]) { + contextApi[classKey] = {}; + } + + functionList.forEach(functionName => { + if (!contextApi[classKey][functionName]) { + contextApi[classKey][functionName] = (...args) => ipcRenderer.invoke(`${classKey}-${functionName}`, ...args); + } + }); + + // Events + if (plugins[pluginKey][classKey].prototype instanceof EventEmitter) { + const listeners: { [key: string]: { type: string; listener: (...args: any[]) => void } } = {}; + const listenersOfTypeExist = type => !!Object.values(listeners).find(listenerObj => listenerObj.type === type); + + Object.assign(contextApi[classKey], { + addListener(type: string, callback: (...args) => void) { + const id = randomId(); + + // Deduplicate events + if (!listenersOfTypeExist(type)) { + ipcRenderer.send(`event-add-${classKey}`, type); + } + + const eventHandler = (_, ...args) => callback(...args); + + ipcRenderer.addListener(`event-${classKey}-${type}`, eventHandler); + listeners[id] = { type, listener: eventHandler }; + + return id; + }, + removeListener(id: string) { + if (!listeners[id]) { + throw new Error('Invalid id'); + } + + const { type, listener } = listeners[id]; + + ipcRenderer.removeListener(`event-${classKey}-${type}`, listener); + + delete listeners[id]; + + if (!listenersOfTypeExist(type)) { + ipcRenderer.send(`event-remove-${classKey}-${type}`); + } + }, + removeAllListeners(type: string) { + Object.entries(listeners).forEach(([id, listenerObj]) => { + if (listenerObj.type === type) { + ipcRenderer.removeListener(`event-${classKey}-${type}`, listenerObj.listener); + delete listeners[id]; + } + }); + + ipcRenderer.send(`event-remove-${classKey}-${type}`); + }, + }); } - } - } -} + }); +}); + contextBridge.exposeInMainWorld('CapacitorCustomPlatform', { name: 'electron', plugins: contextApi, diff --git a/src/electronHelper.ts b/src/electronHelper.ts index 738a1154..c0054d3f 100644 --- a/src/electronHelper.ts +++ b/src/electronHelper.ts @@ -19,7 +19,12 @@ declare global { getJson(id: string): Promise>; getBuffer(id: string): Promise; getText(id: string): Promise; + startBodyStream(id: string): Promise; + stopBodyStream(id: string): Promise; dispose(id: string): void; + + addListener(event: string, callback: (...args: any) => void): string; + removeListener(id: string): void; }; }; }; @@ -28,6 +33,7 @@ declare global { export type ReturnType = NodeFetchResponse & { headers: { [k: string]: string }; + size: number; url: string; id: string; }; @@ -38,6 +44,7 @@ export type Response = ReturnType & { blob: () => Promise; dispose: () => void; headers: Headers; + body: ReadableStream; }; const finalizationRegistry = @@ -85,10 +92,74 @@ const electronFetch = ( }, } as Response; + const responseProxy = new Proxy(webResponse, { + get(...args) { + const [target, prop, receiver] = args; + + if (prop === 'body') { + const entry = Reflect.get(target, prop); + + if (entry) { + return entry; + } + + let eventId: string | undefined; + const stream = new ReadableStream({ + start(controller) { + eventId = + window.CapacitorCustomPlatform?.plugins.Fetch?.addListener( + `body-${id}`, + (eventType: 'close' | 'error' | 'data', data) => { + switch (eventType) { + case 'close': + controller.close(); + break; + case 'error': + controller.error(data); + break; + case 'data': + controller.enqueue(data); + break; + } + }, + ); + window.CapacitorCustomPlatform?.plugins.Fetch?.startBodyStream( + id, + ); + }, + pull() { + // Not needed + }, + cancel: async () => { + try { + await window.CapacitorCustomPlatform?.plugins.Fetch?.stopBodyStream( + id, + ); + } catch (err) { + if (eventId) { + window.CapacitorCustomPlatform?.plugins.Fetch?.removeListener( + eventId, + ); + } + + throw err; + } + }, + }); + + Reflect.set(target, prop, stream, receiver); + + return stream; + } + + return Reflect.get(...args); + }, + }); + // Dispose of the response on the Electron side when this object gets garbage collected - finalizationRegistry?.register(webResponse, id); + finalizationRegistry?.register(responseProxy, id); - return webResponse; + return responseProxy; }); }; diff --git a/src/web.ts b/src/web.ts index 50ef37e3..f64736be 100644 --- a/src/web.ts +++ b/src/web.ts @@ -17,6 +17,9 @@ import type { import { WebPlugin } from '@capacitor/core'; import * as Cookie from './cookie'; import * as Request from './request'; +import electronFetch from './electronHelper'; + +const fetch = electronFetch ?? window.fetch; export class HttpWeb extends WebPlugin implements HttpPlugin { constructor() { @@ -167,7 +170,7 @@ export class HttpWeb extends WebPlugin implements HttpPlugin { const response = await fetch(options.url, requestInit); let blob: Blob; - if (!options?.progress) blob = await response.blob(); + if (!options?.progress) blob = (await response.blob()) as Blob; else if (!response?.body) blob = new Blob(); else { const reader = response.body.getReader(); From 916bb279eadc167c971e0f74848976dbffa52330 Mon Sep 17 00:00:00 2001 From: jdgjsag67251 <88368191+jdgjsag67251@users.noreply.github.com> Date: Mon, 24 Jan 2022 14:34:25 +0100 Subject: [PATCH 8/8] Dispose of stream on close --- electron/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/electron/src/index.ts b/electron/src/index.ts index 7e97b5ce..72fd852e 100644 --- a/electron/src/index.ts +++ b/electron/src/index.ts @@ -65,6 +65,7 @@ class FetchHelper extends EventEmitter { }, close: () => { this.emit(`body-${id}`, 'close'); + this.stopBodyStream(id); }, };