From c050383f66d1ef048cfc996b4b5f3c6a5e640e16 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Mon, 14 Mar 2022 13:04:35 -0700 Subject: [PATCH 01/23] init refactor --- packages/cli/package.json | 2 + packages/cli/src/cli.ts | 19 +- .../cli/src/{commands => commands-old}/app.ts | 0 .../src/{commands => commands-old}/build.ts | 0 .../src/{commands => commands-old}/codegen.ts | 0 .../src/{commands => commands-old}/create.ts | 0 .../src/{commands => commands-old}/plugin.ts | 0 .../src/{commands => commands-old}/query.ts | 0 packages/cli/src/commands-old/test-env.ts | 80 + .../cli/src/{commands => commands-old}/w3.ts | 0 packages/cli/src/commands/index.ts | 1 + packages/cli/src/commands/test-env.ts | 116 +- packages/cli/src/commands/types.ts | 7 + packages/cli/yarn.lock | 6928 +++++++++++++++++ 14 files changed, 7081 insertions(+), 72 deletions(-) rename packages/cli/src/{commands => commands-old}/app.ts (100%) rename packages/cli/src/{commands => commands-old}/build.ts (100%) rename packages/cli/src/{commands => commands-old}/codegen.ts (100%) rename packages/cli/src/{commands => commands-old}/create.ts (100%) rename packages/cli/src/{commands => commands-old}/plugin.ts (100%) rename packages/cli/src/{commands => commands-old}/query.ts (100%) create mode 100644 packages/cli/src/commands-old/test-env.ts rename packages/cli/src/{commands => commands-old}/w3.ts (100%) create mode 100644 packages/cli/src/commands/index.ts create mode 100644 packages/cli/src/commands/types.ts create mode 100644 packages/cli/yarn.lock diff --git a/packages/cli/package.json b/packages/cli/package.json index 3e8fd78c99..45d7c0966c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -19,6 +19,7 @@ "build": "rimraf ./build && tsc --project tsconfig.build.json && yarn build:envs", "build:envs": "copyfiles ./src/lib/build-envs/**/**/* ./build/lib/build-envs/ -u 3", "prebuild": "ts-node ./scripts/generateIntlTypes.ts", + "build:fast": "rimraf ./build && tsc --project tsconfig.build.json && yarn build:envs", "lint": "eslint --color -c ../../.eslintrc.js .", "test": "cross-env TEST=true jest --passWithNoTests --runInBand --verbose", "test:ci": "cross-env TEST=true jest --passWithNoTests --runInBand --verbose", @@ -44,6 +45,7 @@ "axios": "0.21.2", "chalk": "4.1.0", "chokidar": "3.5.1", + "commander": "9.0.0", "copyfiles": "2.4.1", "fs-extra": "9.0.1", "gluegun": "4.6.1", diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 64a66b2ff9..68c261250c 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -1,20 +1,23 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { build, GluegunToolbox } from "gluegun"; +import * as Commands from "./commands"; +import { Command } from "./commands/types"; -interface Args { - [key: string]: unknown; -} +import { program } from "commander"; -export const run = async (argv: Args): Promise => { - const cli = build("w3") +export const run = async (argv: string[]): Promise => { + /*const cli = build("w3") .src(__dirname) .plugins(`${process.cwd()}/node_modules`, { matching: "w3-*", hidden: true, }) .help() - .create(); + .create();*/ - return await cli.run(argv); + for (const command of Object.values(Commands) as Command[]) { + command.setup(program); + } + + program.parse(argv); }; diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands-old/app.ts similarity index 100% rename from packages/cli/src/commands/app.ts rename to packages/cli/src/commands-old/app.ts diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands-old/build.ts similarity index 100% rename from packages/cli/src/commands/build.ts rename to packages/cli/src/commands-old/build.ts diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands-old/codegen.ts similarity index 100% rename from packages/cli/src/commands/codegen.ts rename to packages/cli/src/commands-old/codegen.ts diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands-old/create.ts similarity index 100% rename from packages/cli/src/commands/create.ts rename to packages/cli/src/commands-old/create.ts diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands-old/plugin.ts similarity index 100% rename from packages/cli/src/commands/plugin.ts rename to packages/cli/src/commands-old/plugin.ts diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands-old/query.ts similarity index 100% rename from packages/cli/src/commands/query.ts rename to packages/cli/src/commands-old/query.ts diff --git a/packages/cli/src/commands-old/test-env.ts b/packages/cli/src/commands-old/test-env.ts new file mode 100644 index 0000000000..45895fdef4 --- /dev/null +++ b/packages/cli/src/commands-old/test-env.ts @@ -0,0 +1,80 @@ +import { + startupTestEnv, + shutdownTestEnv, + withSpinner, + intlMsg, + isDockerInstalled, + getDockerFileLock, +} from "../lib"; + +import { GluegunToolbox, print } from "gluegun"; +import chalk from "chalk"; + +const HELP = ` +${chalk.bold("w3 test-env")} ${intlMsg.commands_testEnv_options_command()} + +Commands: + ${chalk.bold("up")} ${intlMsg.commands_testEnv_options_start()} + ${chalk.bold("down")} ${intlMsg.commands_testEnv_options_stop()} +`; + +export default { + alias: ["t"], + description: intlMsg.commands_testEnv_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { parameters } = toolbox; + + // Command + const command = parameters.first; + + if (!command) { + print.error(intlMsg.commands_testEnv_error_noCommand()); + print.info(HELP); + return; + } + + if (command !== "up" && command !== "down") { + const unrecognizedCommandMessage = intlMsg.commands_testEnv_error_unrecognizedCommand( + { + command: command, + } + ); + print.error(unrecognizedCommandMessage); + print.info(HELP); + return; + } + + if (!isDockerInstalled()) { + print.error(intlMsg.lib_docker_noInstall()); + return; + } + + const dockerLock = getDockerFileLock(); + await dockerLock.request(); + + if (command === "up") { + return await withSpinner( + intlMsg.commands_testEnv_startup_text(), + intlMsg.commands_testEnv_startup_error(), + intlMsg.commands_testEnv_startup_warning(), + async (_spinner) => { + await startupTestEnv(true); + await dockerLock.release(); + } + ); + } else if (command === "down") { + return await withSpinner( + intlMsg.commands_testEnv_shutdown_text(), + intlMsg.commands_testEnv_shutdown_error(), + intlMsg.commands_testEnv_shutdown_warning(), + async (_spinner) => { + await shutdownTestEnv(true); + await dockerLock.release(); + } + ); + } else { + await dockerLock.release(); + throw Error(intlMsg.commands_testEnv_error_never()); + } + }, +}; diff --git a/packages/cli/src/commands/w3.ts b/packages/cli/src/commands-old/w3.ts similarity index 100% rename from packages/cli/src/commands/w3.ts rename to packages/cli/src/commands-old/w3.ts diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts new file mode 100644 index 0000000000..b31bc30b83 --- /dev/null +++ b/packages/cli/src/commands/index.ts @@ -0,0 +1 @@ +export * from "./test-env"; diff --git a/packages/cli/src/commands/test-env.ts b/packages/cli/src/commands/test-env.ts index 45895fdef4..20f00ed629 100644 --- a/packages/cli/src/commands/test-env.ts +++ b/packages/cli/src/commands/test-env.ts @@ -1,80 +1,68 @@ +import { Command, Program } from "./types"; import { - startupTestEnv, - shutdownTestEnv, - withSpinner, intlMsg, isDockerInstalled, getDockerFileLock, + startupTestEnv, + shutdownTestEnv } from "../lib"; -import { GluegunToolbox, print } from "gluegun"; -import chalk from "chalk"; +export const testEnv: Command = { + setup: (program: Program) => { + const testEnvCommand = program + .alias("t") + .command("test-env") + .description(intlMsg.commands_testEnv_description()); -const HELP = ` -${chalk.bold("w3 test-env")} ${intlMsg.commands_testEnv_options_command()} + testEnvCommand + .command("up") + .description(intlMsg.commands_testEnv_options_start()) + .action(async (options) => { + await run("start"); + }); -Commands: - ${chalk.bold("up")} ${intlMsg.commands_testEnv_options_start()} - ${chalk.bold("down")} ${intlMsg.commands_testEnv_options_stop()} -`; + testEnvCommand + .command("down") + .description(intlMsg.commands_testEnv_options_stop()) + .action(async (options) => { + await run("stop"); + }); + } +} -export default { - alias: ["t"], - description: intlMsg.commands_testEnv_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { parameters } = toolbox; +async function run(startStop: "start" | "stop") { + if (!isDockerInstalled()) { + throw new Error(intlMsg.lib_docker_noInstall()); + } - // Command - const command = parameters.first; + const dockerLock = getDockerFileLock(); + await dockerLock.request(); - if (!command) { - print.error(intlMsg.commands_testEnv_error_noCommand()); - print.info(HELP); - return; - } + if (startStop === "start") { + // TODO: create more robust logger + console.log(intlMsg.commands_testEnv_startup_text()); - if (command !== "up" && command !== "down") { - const unrecognizedCommandMessage = intlMsg.commands_testEnv_error_unrecognizedCommand( - { - command: command, - } - ); - print.error(unrecognizedCommandMessage); - print.info(HELP); - return; - } - - if (!isDockerInstalled()) { - print.error(intlMsg.lib_docker_noInstall()); - return; + try { + await startupTestEnv(true); + await dockerLock.release(); + } catch (e) { + console.error(intlMsg.commands_testEnv_startup_error()); + throw e; } + } else if (startStop === "stop") { + // TODO: create more robust logger + console.log(intlMsg.commands_testEnv_shutdown_text()); - const dockerLock = getDockerFileLock(); - await dockerLock.request(); - - if (command === "up") { - return await withSpinner( - intlMsg.commands_testEnv_startup_text(), - intlMsg.commands_testEnv_startup_error(), - intlMsg.commands_testEnv_startup_warning(), - async (_spinner) => { - await startupTestEnv(true); - await dockerLock.release(); - } - ); - } else if (command === "down") { - return await withSpinner( - intlMsg.commands_testEnv_shutdown_text(), - intlMsg.commands_testEnv_shutdown_error(), - intlMsg.commands_testEnv_shutdown_warning(), - async (_spinner) => { - await shutdownTestEnv(true); - await dockerLock.release(); - } - ); - } else { + try { + // TODO: this should be configurable & stream the docker ouput to console for added info + await shutdownTestEnv(true); await dockerLock.release(); - throw Error(intlMsg.commands_testEnv_error_never()); + } catch (e) { + console.error(intlMsg.commands_testEnv_shutdown_error()); + throw e; } - }, -}; + } else { + await dockerLock.release(); + throw Error(intlMsg.commands_testEnv_error_never()); + } +} diff --git a/packages/cli/src/commands/types.ts b/packages/cli/src/commands/types.ts new file mode 100644 index 0000000000..4359d1afbc --- /dev/null +++ b/packages/cli/src/commands/types.ts @@ -0,0 +1,7 @@ +import { Command as Program } from "commander"; + +export { Program }; + +export interface Command { + setup: (program: Program) => void; +} diff --git a/packages/cli/yarn.lock b/packages/cli/yarn.lock new file mode 100644 index 0000000000..0b8f2763ca --- /dev/null +++ b/packages/cli/yarn.lock @@ -0,0 +1,6928 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.7.tgz#f7c28228c83cdf2dbd1b9baa06eaf9df07f0c2f9" + integrity sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.7" + "@babel/parser" "^7.17.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helpers@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.7.tgz#6fc0a24280fd00026e85424bbfed4650e76d7127" + integrity sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.7.tgz#fc19b645a5456c8d6fdb6cecd3c66c0173902800" + integrity sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/template@^7.16.7", "@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@dorgjelli-test/ipfs-http-client-lite@0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@dorgjelli-test/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.1.tgz#5514b4400e0c91ea64e0b5faf426ba808809ddfe" + integrity sha512-N96ilOlJnjnprOOIrwKjEA7lu67mbXyGmJO/vOBXQvY9AQw9XrPdIEn0x30bHwQ6pWSwN4RhIgJUy1/A7u/hEg== + dependencies: + abort-controller "^3.0.0" + async-iterator-to-pull-stream "^1.3.0" + buffer "^5.2.1" + cids "^0.7.1" + explain-error "^1.0.4" + form-data "^2.4.0" + iterable-ndjson "^1.1.0" + node-fetch "^2.6.0" + pull-stream-to-async-iterator "^1.0.2" + querystring "^0.2.0" + +"@dorgjelli/graphql-schema-cycles@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@dorgjelli/graphql-schema-cycles/-/graphql-schema-cycles-1.1.4.tgz#31f230c61f624f7c2ceca7e18fad8b2cb07d392f" + integrity sha512-U5ARitMQWKjOAvwn1+0Z52R9sbNe1wpbgAbj2hOfRFb/vupfPlRwZLbuUZAlotMpkoxbTbk+GRmoiNzGcJfyHw== + dependencies: + graphql "15.5.0" + graphql-json-transform "^1.1.0-alpha.0" + +"@dsherret/to-absolute-glob@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1f6475dc8bd974cea07a2daf3864b317b1dd332c" + integrity sha1-H2R13IvZdM6gei2vOGSzF7HdMyw= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" + integrity sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" + integrity sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + +"@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" + integrity sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/address@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.7.tgz#ee7fd7d3b3a400dec6035c7b3f0b7e4652207308" + integrity sha512-+63DiYG+2og6rFNvQmLlLw8i5LtyT65n+jtHd06Ic81rLHc+JUKRpeZFhBa+gqh9f+P8V0xtKR5NI/EHXOfgSw== + dependencies: + "@ethersproject/bignumber" "^5.0.10" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp" "^5.0.3" + +"@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" + integrity sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + +"@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" + integrity sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + +"@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.0.tgz#9ea7209bf0a1c3ddc2a90f180c3a7f0d7d2e8a69" + integrity sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + +"@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" + integrity sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + bn.js "^4.11.9" + +"@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.0.tgz#81652f2a0e04533575befadce555213c11d8aa20" + integrity sha512-3hJPlYemb9V4VLfJF5BfN0+55vltPZSHU3QKUyP9M3Y2TcajbiRrz65UG+xVHOzBereB1b9mn7r12o177xgN7w== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" + integrity sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + +"@ethersproject/contracts@^5.0.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.0.tgz#60f2cfc7addd99a865c6c8cfbbcec76297386067" + integrity sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw== + dependencies: + "@ethersproject/abi" "^5.6.0" + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + +"@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" + integrity sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.0.tgz#9dcbe8d629bbbcf144f2cae476337fe92d320998" + integrity sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + +"@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz#4c2fc27f17e36c583e7a252fb938bc46f98891e5" + integrity sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" + integrity sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w== + dependencies: + "@ethersproject/bytes" "^5.6.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" + integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== + +"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.0.tgz#486d03fff29b4b6b5414d47a232ded09fe10de5e" + integrity sha512-DaVzgyThzHgSDLuURhvkp4oviGoGe9iTZW4jMEORHDRCgSZ9K9THGFKqL+qGXqPAYLEgZTf5z2w56mRrPR1MjQ== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz#04fcc2d7c6bff88393f5b4237d906a192426685a" + integrity sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + +"@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" + integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== + dependencies: + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/providers@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" + integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== + dependencies: + "@ethersproject/abstract-provider" "^5.0.3" + "@ethersproject/abstract-signer" "^5.0.3" + "@ethersproject/address" "^5.0.3" + "@ethersproject/basex" "^5.0.3" + "@ethersproject/bignumber" "^5.0.6" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.3" + "@ethersproject/hash" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/networks" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/random" "^5.0.3" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/strings" "^5.0.3" + "@ethersproject/transactions" "^5.0.3" + "@ethersproject/web" "^5.0.4" + bech32 "1.1.4" + ws "7.2.3" + +"@ethersproject/providers@^5.0.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.0.tgz#08ec8e2666771e3a347e66c8f664a2af97366534" + integrity sha512-6+5PKXTWAttJWFWF8+xCDTCa2/dtq9BNrdKQHGl0IyIOwj99vM6OeThmIRcsIAzIOb8m0XS6w+1KFZwrf3j9nw== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6" + integrity sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" + integrity sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.0.tgz#364c4c11cc753bda36f31f001628706ebadb64d9" + integrity sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" + integrity sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@^5.0.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.0.tgz#64657362a596bf7f5630bdc921c07dd78df06dc3" + integrity sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" + integrity sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" + integrity sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + +"@ethersproject/units@^5.0.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.0.tgz#e5cbb1906988f5740254a21b9ded6bd51e826d9c" + integrity sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + +"@ethersproject/wallet@^5.0.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.0.tgz#33d11a806d783864208f348709a5a3badac8e22a" + integrity sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/json-wallets" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + +"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" + integrity sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg== + dependencies: + "@ethersproject/base64" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.0.tgz#79e62c5276e091d8575f6930ba01a29218ded032" + integrity sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + +"@formatjs/ecma402-abstract@1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.2.tgz#9d064a2cf790769aa6721e074fb5d5c357084bb9" + integrity sha512-aLBODrSRhHaL/0WdQ0T2UsGqRbdtRRHqqrs4zwNQoRsGBEtEAvlj/rgr6Uea4PSymVJrbZBoAyECM2Z3Pq4i0g== + dependencies: + tslib "^2.1.0" + +"@formatjs/intl-datetimeformat@3.2.12": + version "3.2.12" + resolved "https://registry.yarnpkg.com/@formatjs/intl-datetimeformat/-/intl-datetimeformat-3.2.12.tgz#c9b2e85f0267ee13ea615a8991995da3075e3b13" + integrity sha512-qvY5+dl3vlgH0iWRXwl8CG9UkSVB5uP2+HH//fyZZ01G4Ww5rxMJmia1SbUqatpoe/dX+Z+aLejCqUUyugyL2g== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +"@formatjs/intl-displaynames@4.0.10": + version "4.0.10" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-4.0.10.tgz#5bbd1bbcd64a036b4be27798b650c864dcf4466a" + integrity sha512-KmYJQHynGnnMeqIWVXhbzCMcEC8lg1TfGVdcO9May6paDT+dksZoOBQc741t7iXi/YVO/wXEZdmXhUNX7ODZug== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +"@formatjs/intl-listformat@5.0.10": + version "5.0.10" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-5.0.10.tgz#9f8c4ad5e8a925240e151ba794c41fba01f742cc" + integrity sha512-FLtrtBPfBoeteRlYcHvThYbSW2YdJTllR0xEnk6cr/6FRArbfPRYMzDpFYlESzb5g8bpQMKZy+kFQ6V2Z+5KaA== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +"@formatjs/intl-relativetimeformat@8.1.2": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.2.tgz#119f3dce97458991f86bf34a736880e4a7bc1697" + integrity sha512-LZUxbc9GHVGmDc4sqGAXugoxhvZV7EG2lG2c0aKERup2ixvmDMbbEN3iEEr5aKkP7YyGxXxgqDn2dwg7QCPR6Q== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +"@formatjs/intl@1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-1.8.2.tgz#6090e6c1826a92e70668dfe08b4ba30127ea3a85" + integrity sha512-9xHoNKPv4qQIQ5AVfpQbIPZanz50i7oMtZWrd6Fz7Q2GM/5uhBr9mrCrY1tz/+diP7uguKmhj1IweLYaxY3DTQ== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + "@formatjs/intl-datetimeformat" "3.2.12" + "@formatjs/intl-displaynames" "4.0.10" + "@formatjs/intl-listformat" "5.0.10" + "@formatjs/intl-relativetimeformat" "8.1.2" + fast-memoize "^2.5.2" + intl-messageformat "9.5.2" + intl-messageformat-parser "6.4.2" + tslib "^2.1.0" + +"@formatjs/ts-transformer@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.2.0.tgz#fdd3617347f023cbe3dad91713240d39bb139eca" + integrity sha512-T1mf72VaqPcARMSbAxRogXTd58gBF3R87oApCvMtXLJR2AIuSX7fnia/2A//f4dmq4qDetcvEmetlvwz0b5dbw== + dependencies: + intl-messageformat-parser "6.4.2" + tslib "^2.1.0" + typescript "^4.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@msgpack/msgpack@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.3.0.tgz#a9043b920837b2dd63482e7bf6b8345813e9816b" + integrity sha512-xxRejzNpiVQ2lzxMG/yo2ocfZSk+cKo2THq54AimaubMucg66DpQm9Yj7ESMr/l2EqDkmF2Dx4r0F/cbsitAaw== + +"@multiformats/base-x@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" + integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@opentelemetry/api-metrics@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-metrics/-/api-metrics-0.20.0.tgz#5c332cadfacd1fa966318292ba8dbb542f5ead57" + integrity sha512-S/OeOuk5W8nlv2dp4JQmIzZvafpOKhEb4j9gWdWQaM0+U+Cv+yQlboeTQHFcpj5obwJ7AzTHrwnL6ApV8dtmuw== + +"@opentelemetry/api@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.20.0.tgz#d4e26d30dc0c5da697d1ff51434ad8f0cf30e565" + integrity sha512-n06MtDYEc2H07S/NTvGMlxF2Ijp0YbNrI/rBgLcxpEh3hxOkPZA12gxlUoZkBHWCZYau2j3b/uL+QFpiQKOjSw== + +"@opentelemetry/context-async-hooks@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-0.20.0.tgz#44c457eb2359ff3086bb8fc5d306b2efd91921d9" + integrity sha512-4cuTIPpufWRDdShtvT0c30/jHfO9eXzUh6tU087J8aO8J/hckyCIlN03eB7pfqPwQzLnWONGdHOpGjLSY7q4tg== + +"@opentelemetry/context-zone-peer-dep@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-0.20.0.tgz#d9d9da21466471609f49dd4ac6c231a21473165b" + integrity sha512-IuR21APoAwPMkEwYtRQW1bEqFZttmwflloNr8eWXlb19kH6E8oTvDkH0dTTQWfEkj7T/R93ePPlDMh98L05AfQ== + +"@opentelemetry/context-zone@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone/-/context-zone-0.20.0.tgz#88b59ed212f07f0286e99f4dda218d20f211fcdd" + integrity sha512-jefasByZ4qlx4QT8jeQoenemlxFMNXqP/4dQaJEQi8OyzaFFdOvRLHc3dJLMV2Icq0z7Vdir44icI+sbXnHp0A== + dependencies: + "@opentelemetry/context-zone-peer-dep" "0.20.0" + zone.js "^0.11.0" + +"@opentelemetry/core@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-0.20.0.tgz#2fc9619fa225c7ea7a6169ac578f89c9894b5900" + integrity sha512-09zQqB4vp2jcyBnglA/TFklDQoVgWrFKtr9pDm0q3Oa1bD2Hwpq+JapBAw18YdMQsLNQM/qsXhFlS3gFDVEy4A== + dependencies: + "@opentelemetry/semantic-conventions" "0.20.0" + semver "^7.1.3" + +"@opentelemetry/exporter-collector@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-collector/-/exporter-collector-0.20.0.tgz#e8fe1d3411f115d3b113115c2a78e16b3dacacd1" + integrity sha512-ka4FHPqXYZpTRx2KYTUpBB9gqzwtzuVBvxew5/0TpR8W3yP2gUErWPsUBrch2tRBQ7jY2kJN5sfkJPVt/j1X9w== + dependencies: + "@opentelemetry/api-metrics" "0.20.0" + "@opentelemetry/core" "0.20.0" + "@opentelemetry/metrics" "0.20.0" + "@opentelemetry/resources" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + +"@opentelemetry/exporter-jaeger@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-0.20.0.tgz#7d7da470a68ce3bd10038444609e4efdb74dc4cf" + integrity sha512-tzxuta6Z5YWHFDavIoXYB3cr7/y6WBieQiXnXfjuh9JEagUPE3en+0Qdc4Iu65E38eFNI8G3HWABoavWfRuvRQ== + dependencies: + "@opentelemetry/core" "0.20.0" + "@opentelemetry/semantic-conventions" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + jaeger-client "^3.15.0" + +"@opentelemetry/exporter-zipkin@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-0.20.0.tgz#636e9f02d4c561da2b3b58565a08ce840df9a2e4" + integrity sha512-SoCcx749YkYAwnep6KZeR1zyQeg55uxDL/ZX5zP1ZMblmVcYIO8X7aNFBIHM9IlvbArNnYHMECBu7idCJPA/WQ== + dependencies: + "@opentelemetry/core" "0.20.0" + "@opentelemetry/resources" "0.20.0" + "@opentelemetry/semantic-conventions" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + +"@opentelemetry/metrics@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/metrics/-/metrics-0.20.0.tgz#9f8b2652929a830513dc6949e2471f325c1e8dbd" + integrity sha512-1jqtRvI+AdRIG+Up8njOgooOxa570uoWTKgokanllcCRp2gOOnkgLQ8YQhbArX0F4Xi2FHYe7o5vDO3J0Aj5kA== + dependencies: + "@opentelemetry/api-metrics" "0.20.0" + "@opentelemetry/core" "0.20.0" + "@opentelemetry/resources" "0.20.0" + lodash.merge "^4.6.2" + +"@opentelemetry/node@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/node/-/node-0.20.0.tgz#7d4594deb87f0c0133d4b97b78a5678a6f8554cf" + integrity sha512-MVwnH/AoHQTz1jOhJTYXoAoQD4CA/3L7QQkiiA93f6QGaWKIHjI/+3fUtA/GCfPR9Kf0sItQ/aag8KtCJClPCw== + dependencies: + "@opentelemetry/context-async-hooks" "0.20.0" + "@opentelemetry/core" "0.20.0" + "@opentelemetry/propagator-b3" "0.20.0" + "@opentelemetry/propagator-jaeger" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + semver "^7.1.3" + +"@opentelemetry/propagator-b3@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-0.20.0.tgz#78944a0527675c856b4f369dbfdd48d5272a434e" + integrity sha512-TGI2D45oUVlbXVEWDedqxwO0WUtzchN/tuYghEHjRTNcVLLKT2ci9JwzHormC+ls98SYPDfvuzpB0+ParoexPQ== + dependencies: + "@opentelemetry/core" "0.20.0" + +"@opentelemetry/propagator-jaeger@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-0.20.0.tgz#35fc5e0bfde1bef6afc0307f88a4b22135bc5c14" + integrity sha512-6kdnd1ePADx4XDaFw4Ea47fdIZohhJbd30Fc4yvl0DO+RR5WEAiAho0IsoTj6L/qvOb/+LAfvjvdk2UOXgb/3Q== + dependencies: + "@opentelemetry/core" "0.20.0" + +"@opentelemetry/resources@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-0.20.0.tgz#038d985c610600cde146ee1e95b6a124f3ad4754" + integrity sha512-nnd3vIM+A9ih6kOVBc2CF5NkTYmdNci5aQ+A5lQjf3HqjEptcGubpg1J1Q84LSFVoITvuH2O6+GhPBrdxYBt8g== + dependencies: + "@opentelemetry/core" "0.20.0" + "@opentelemetry/semantic-conventions" "0.20.0" + +"@opentelemetry/semantic-conventions@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-0.20.0.tgz#adc7e391bba6db9bbaba04ae263c3e92b1703d44" + integrity sha512-x40C3vQMttFlnNEfhFwO49jHrY6AoWnntL35TCem3LINr/aw1W0hGhdKY/zweC64CBJEyiHumaae480rqF8eOA== + +"@opentelemetry/tracing@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/tracing/-/tracing-0.20.0.tgz#ff0224568925158244926661b339c0ac63a729ba" + integrity sha512-8ZIH0IBxIucgza0BFNiCCLByUsvu45Dm5k292RlO/E8Z1q/J7otJmh9r/EkaFb0ZSyjNdawmJ1CXnlU7+IQN1w== + dependencies: + "@opentelemetry/core" "0.20.0" + "@opentelemetry/resources" "0.20.0" + "@opentelemetry/semantic-conventions" "0.20.0" + lodash.merge "^4.6.2" + +"@opentelemetry/web@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/web/-/web-0.20.0.tgz#e0e090f0dcd35ebaa068c2e98f1b69d1a4aacfce" + integrity sha512-Ysja/YtlM/9hYKp8NUk63rSXQWT8N4uLWCyE/diW+iJDvUHY6DrNkSYKFYk5oRc50McYFq2Yqkmm/y1hRDCwHg== + dependencies: + "@opentelemetry/core" "0.20.0" + "@opentelemetry/semantic-conventions" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@ts-morph/common@~0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.8.1.tgz#7be0a0048eb906cb3ddf6506bef06c3cd1a1e3ba" + integrity sha512-3TC91LfCKCNCW7zYpegoMnMa9VigXtZHQererUM9pCvZKN3ust3ioLA0kfX+UHSzIGln+UYYiRzfOsv0QoiUng== + dependencies: + "@dsherret/to-absolute-glob" "^2.0.2" + fast-glob "^3.2.5" + is-negated-glob "^1.0.0" + mkdirp "^1.0.4" + multimatch "^5.0.0" + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.18" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/copyfiles@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/copyfiles/-/copyfiles-2.4.0.tgz#877ef9aa9def7df889fb1ca900206c79a873d113" + integrity sha512-ujm66wtJzW0ok5bIfwSZdvI4C4E6rbAvG58zow71wLjPPj65rIMu4Uy5LOx5H4eRvaagGUrrKTxqfLiDSsHEGQ== + +"@types/emoji-regex@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@types/emoji-regex/-/emoji-regex-8.0.0.tgz#df215c9ff818e071087fb8e7e6e74c4cb42a1303" + integrity sha512-iacbaYN9IWWrGWTwlYLVOeUtN/e4cjN9Uh6v7Yo1Qa/vJzeSQeh10L/erBBSl53BTmbnQ07vsWp8mmNHGI4WbQ== + +"@types/eslint@^7.2.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" + integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/fs-extra@9.0.12": + version "9.0.12" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" + integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== + dependencies: + "@types/node" "*" + +"@types/glob@*": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.0.8": + version "26.0.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.8.tgz#f5c5559cf25911ce227f7ce30f1f160f24966369" + integrity sha512-eo3VX9jGASSuv680D4VQ89UmuLZneNxv2MCZjfwlInav05zXVJTzfc//lavdV0GPwSxsXJTy2jALscB7Acqg0g== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + +"@types/json-schema@*": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/minimatch@*", "@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + +"@types/node@12.12.26": + version "12.12.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.26.tgz#213e153babac0ed169d44a6d919501e68f59dea9" + integrity sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" + integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== + +"@types/rimraf@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.0.tgz#b9d03f090ece263671898d57bb7bb007023ac19f" + integrity sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/typescript-estree@^3.6.0": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@web3api/asyncify-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/asyncify-js/-/asyncify-js-0.0.1-prealpha.67.tgz#c0ded75007d50ef2405280589ccec2f7f9cc0428" + integrity sha512-zkQ+D0FEBjHXjsCooTQGoddteN4YrTVgg4snwZHkLaAYvsZR9te5uaMQnvofdBVLObVLQcUF2M1cZ2u5AlC4Yw== + +"@web3api/client-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/client-js/-/client-js-0.0.1-prealpha.67.tgz#72d3dc454ee329b5af9ea131d7cd821b499ebafc" + integrity sha512-GVbD3t38M/br2JYkoRuPZRGksEdSoUgtFU74u59SN7kI3Z3wI96lB0F5Pr0Cp6CX8edKKX3waI7SJ72HBc9H5A== + dependencies: + "@msgpack/msgpack" "2.3.0" + "@web3api/asyncify-js" "0.0.1-prealpha.67" + "@web3api/core-js" "0.0.1-prealpha.67" + "@web3api/ens-plugin-js" "0.0.1-prealpha.67" + "@web3api/ethereum-plugin-js" "0.0.1-prealpha.67" + "@web3api/fs-plugin-js" "0.0.1-prealpha.67" + "@web3api/graph-node-plugin-js" "0.0.1-prealpha.67" + "@web3api/http-plugin-js" "0.0.1-prealpha.67" + "@web3api/ipfs-plugin-js" "0.0.1-prealpha.67" + "@web3api/logger-plugin-js" "0.0.1-prealpha.67" + "@web3api/schema-parse" "0.0.1-prealpha.67" + "@web3api/sha3-plugin-js" "0.0.1-prealpha.67" + "@web3api/tracing-js" "0.0.1-prealpha.67" + "@web3api/uts46-plugin-js" "0.0.1-prealpha.67" + graphql "15.5.0" + js-yaml "3.14.0" + uuid "8.3.2" + +"@web3api/client-test-env@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/client-test-env/-/client-test-env-0.0.1-prealpha.67.tgz#b569dc4515ba0df4d13e029533dd169b203655f2" + integrity sha512-GoUaZ71QQ3IXRXruF9KpUBfsPmcdvbVxyOCTOa9KUpr9yt0Y2f8Ftqc9QHUA/E/cKbj7eRSF1fB5Mk0Okdb1KQ== + dependencies: + axios "0.21.2" + dotenv "10.0.0" + +"@web3api/core-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/core-js/-/core-js-0.0.1-prealpha.67.tgz#8f1a3fc7b0b5d66512a53b00c41790a3c9d29fdd" + integrity sha512-UZxsrSXh7d6vVj6WQ1E6ReCBiGBAquZOMnO2INgHJqKPZ6+yo4xLj9EJdCoXEgqKUcNxAdlJ0e4tWGzfcvjxig== + dependencies: + "@web3api/manifest-schemas" "0.0.1-prealpha.67" + "@web3api/tracing-js" "0.0.1-prealpha.67" + graphql "15.5.0" + graphql-tag "2.10.4" + js-yaml "3.14.0" + jsonschema "1.4.0" + semver "7.3.5" + +"@web3api/ens-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/ens-plugin-js/-/ens-plugin-js-0.0.1-prealpha.67.tgz#6f5088b897d0dc63b9faade7d7d67febd7b0d2b1" + integrity sha512-5gmOSWy/dnZ33axHsd36YVaEDVH4Yv2LCsHzjpNUuO8jYoGaH5wKLAJNZjE700DR1QRcmUw9E6ji98e8NvFHVA== + dependencies: + "@ethersproject/address" "5.0.7" + "@web3api/core-js" "0.0.1-prealpha.67" + ethers "5.0.7" + +"@web3api/ethereum-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/ethereum-plugin-js/-/ethereum-plugin-js-0.0.1-prealpha.67.tgz#cecb49b86e0d5c16df81fe31416ce4b27ae70162" + integrity sha512-1Ix25HKEkl26uWBvb4gUhJ0U9MBMM3Byk6VQzsLB4N4o/bsXERibYLUeRWMai58BDys1iKToQKdbPWFg6SuPlg== + dependencies: + "@ethersproject/address" "5.0.7" + "@ethersproject/providers" "5.0.7" + "@web3api/core-js" "0.0.1-prealpha.67" + ethers "5.0.7" + +"@web3api/fs-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/fs-plugin-js/-/fs-plugin-js-0.0.1-prealpha.67.tgz#b0b45d603d5fb3317619ab848191a1d9882236c1" + integrity sha512-0mcprvY5dc9Jzeu5Uu799fzgzFIOrWTzAtKeZWKYLumcxE/Pra7tUV+oHy81aOZC15XxXnhgPnmkZB++fkK1yQ== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + +"@web3api/graph-node-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/graph-node-plugin-js/-/graph-node-plugin-js-0.0.1-prealpha.67.tgz#8bd2a97ee56df90cd73a60bfbba1b5d9fa5851af" + integrity sha512-ro6V1qCJGuhAnkDZqnKwa6t6aY0SFt7/gKPv2jLCTGjL0e7QA9SAueOWL+zemCE/KzXUzhcHwxGxaI9XFNVsoQ== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + "@web3api/http-plugin-js" "0.0.1-prealpha.67" + apollo-link "1.2.14" + apollo-link-http "1.5.17" + cross-fetch "3.0.5" + graphql-tag "2.10.4" + +"@web3api/http-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/http-plugin-js/-/http-plugin-js-0.0.1-prealpha.67.tgz#7c0f2bb56e4e9c2fe5acf850cf2505fcd92f1495" + integrity sha512-JUxJp77aHu7iSUBpjMdoZXG7rJp+RbVNLjzQ1CbfaPrT6Bxqf/+iulWVkucp5K7WJvoihaLtaDq3N8/vKMHXZA== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + axios "0.21.4" + +"@web3api/ipfs-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/ipfs-plugin-js/-/ipfs-plugin-js-0.0.1-prealpha.67.tgz#b29e60bb56816ebe324adc3a6a54f06b31e04361" + integrity sha512-46tKeItk6zC74wU+0W/8IvesqXT4DP029YmZT3VdFfy7qdzgIjrx5BOnFr5mzgDWIpvcenixif8jnzghnS2naA== + dependencies: + "@dorgjelli-test/ipfs-http-client-lite" "0.3.1" + "@web3api/core-js" "0.0.1-prealpha.67" + abort-controller "3.0.0" + cids "^1.1.4" + is-ipfs "1.0.3" + +"@web3api/logger-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/logger-plugin-js/-/logger-plugin-js-0.0.1-prealpha.67.tgz#b4fdfe3afc862be9661ccffea7ac2403d554f6d2" + integrity sha512-P7mhq7NWc1jpz4J5R1fPIurJv2sqScX9zp9LT3y7HsVRBniTwTV2BG+8FHw2RJYkIHLP7EO7J+07IFPxHRtA+w== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + +"@web3api/manifest-schemas@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/manifest-schemas/-/manifest-schemas-0.0.1-prealpha.67.tgz#4c6e841baef381ef22a12df3b9532d2e8208c722" + integrity sha512-94wTK6TT/PxbTMuElcc8sYz2p7iRKrwINUC1tZML97lFCQCnTwmpny87LrQQHPMd+N4CkFced8ErxwBM0xTOyQ== + +"@web3api/os-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/os-js/-/os-js-0.0.1-prealpha.67.tgz#ce61734e5f8aa9b91f50ef620b0bb8c2bd041c52" + integrity sha512-KCxcm6rWlyPOUNHRFiHTetfFt97YIiLYk9eD2bbwolhkxNmfEPoQ45Fi3g9FnKWhZzAc7iAvfBaFRrNofXT8aQ== + +"@web3api/schema-bind@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/schema-bind/-/schema-bind-0.0.1-prealpha.67.tgz#8bd0b14e58c42ea61c92384f5b93f9fdc610c282" + integrity sha512-Gw0NzXRaoKWUltVTiNi9SWifxoigKpASSBgAJOu5JQSAZWLKjRKs5Rks8BkX1jVf/uKeHWXxoU07sF4kPFM+cw== + dependencies: + "@web3api/os-js" "0.0.1-prealpha.67" + "@web3api/schema-compose" "0.0.1-prealpha.67" + "@web3api/schema-parse" "0.0.1-prealpha.67" + mustache "4.0.1" + +"@web3api/schema-compose@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/schema-compose/-/schema-compose-0.0.1-prealpha.67.tgz#34a4fb27ef25f458cdfbef20ea7de060a34903d3" + integrity sha512-vP9fNERCGacMZSFFk15TEY9UK2Sw4bi2XDD3tNLcNS/DhpYzKY+5WrTlGCd7520Cv1qFCc7CuyGDWl6/SngJ9A== + dependencies: + "@web3api/schema-parse" "0.0.1-prealpha.67" + graphql "15.5.0" + mustache "4.0.1" + +"@web3api/schema-parse@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/schema-parse/-/schema-parse-0.0.1-prealpha.67.tgz#e60fa7fa38c5e705fe9303710dc0e8b7964169fd" + integrity sha512-5+vfnR5lVIcUi/EIbmkJV+p3qXMciLB1nl4NZJOEVqPFcNGxMaJGMps+ao40jPCaQtL6HwLgwiNxjehzAV+Z3g== + dependencies: + "@dorgjelli/graphql-schema-cycles" "1.1.4" + graphql "15.5.0" + +"@web3api/sha3-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/sha3-plugin-js/-/sha3-plugin-js-0.0.1-prealpha.67.tgz#9fab94f18741602faf2d0c8b8547842b651c2c50" + integrity sha512-VOcTDKeUWL4YSorKPQJnSGsaTorpE1AW2ArYQTBljLSSgVdQb6pK1IV4iV+vlt3wNS3+NbSMcP5VqjwoGem4AQ== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + js-sha3 "0.8.0" + +"@web3api/test-env-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/test-env-js/-/test-env-js-0.0.1-prealpha.67.tgz#8478adfb7ab36aa531d33ce30bdabd3a6e8ffc22" + integrity sha512-nqbAH99OOR/8L4oxujtBNECcHNSfFgeW2erZdn7LV7qgs/bboeEz43zeDz7kpOYpmHMVC8xeC0Kx26evS5aSRw== + dependencies: + axios "0.21.2" + spawn-command "0.0.2-1" + +"@web3api/tracing-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/tracing-js/-/tracing-js-0.0.1-prealpha.67.tgz#af69678f99a17d28785ae3eda8f32bcd3269acba" + integrity sha512-qJspy2esw0S0HomrcmEN7hjdbu5vsqIIXoyvSNVufhRqOMD48ot73wEGV+VYgSUvxHYJPc0iuIaCDG97y2q5jw== + dependencies: + "@opentelemetry/api" "0.20.0" + "@opentelemetry/context-zone" "0.20.0" + "@opentelemetry/core" "0.20.0" + "@opentelemetry/exporter-collector" "0.20.0" + "@opentelemetry/exporter-jaeger" "0.20.0" + "@opentelemetry/exporter-zipkin" "0.20.0" + "@opentelemetry/node" "0.20.0" + "@opentelemetry/propagator-b3" "0.20.0" + "@opentelemetry/tracing" "0.20.0" + "@opentelemetry/web" "0.20.0" + browser-util-inspect "0.2.0" + +"@web3api/uts46-plugin-js@0.0.1-prealpha.67": + version "0.0.1-prealpha.67" + resolved "https://registry.yarnpkg.com/@web3api/uts46-plugin-js/-/uts46-plugin-js-0.0.1-prealpha.67.tgz#147b3e1d7cf6e39de5731c22f7e92c46d838dd2f" + integrity sha512-W+zht1/1kZoWIjj5TfjBXgXGDgWQG5Dwucpz9iMU6CD4Ip+xqS70OtH6T9Q4CQcezXtDdE0iWL8k08rQ3Huaxw== + dependencies: + "@web3api/core-js" "0.0.1-prealpha.67" + idna-uts46-hx "3.4.0" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +"@zxing/text-encoding@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abort-controller@3.0.0, abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-color@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" + integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= + +ansi-colors@^3.2.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-signal@^2.0.0, any-signal@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" + integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== + dependencies: + abort-controller "^3.0.0" + native-abort-controller "^1.0.3" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apisauce@^2.0.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.5.tgz#546229f8f145711b3b022065afb0f43bd304ecb3" + integrity sha512-bkMlz0ZUnyS8vDigej9UBYo5dne9/bQrkgIiIkGaiDHF6e5OxhYRLJDYu65V/Ox86tmWVwepIntAoTmk4Db0Hg== + dependencies: + axios "^0.21.4" + +apollo-link-http-common@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link-http@1.5.17: + version "1.5.17" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" + integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== + dependencies: + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" + tslib "^1.9.3" + +apollo-link@1.2.14, apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-utilities@^1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU= + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +assemblyscript@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.1.tgz#8d52332b7cef88e03d15b633e70c5febddd1f444" + integrity sha512-unWcmJsw5H0H2GrTf25GlDJCaNzAveeFYPH5XhP54m540+26KJIurTEHN+xf/EI3MdK7IhThpGCE+pNqiNuLmA== + dependencies: + binaryen "101.0.0-nightly.20210527" + long "^4.0.0" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-iterator-to-pull-stream@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz#3a6b9f3cceadff972ca20eb480e3cb43f8789732" + integrity sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA== + dependencies: + get-iterator "^1.0.2" + pull-stream-to-async-iterator "^1.0.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@0.21.2: + version "0.21.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017" + integrity sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg== + dependencies: + follow-redirects "^1.14.0" + +axios@0.21.4, axios@^0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bignumber.js@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binaryen@101.0.0-nightly.20210527: + version "101.0.0-nightly.20210527" + resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210527.tgz#7677155efc965e0276dd206ed30f2d9e216ed6e2" + integrity sha512-dbKentJwA6H0LfI+pRuzNNzAooJwYFNrg1L8rRw8j6rlfkU815ytNLO+uDzGNcltYehUa5ERZFJHPIdqX12n0w== + +bl@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + +blob-to-it@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb" + integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== + dependencies: + browser-readablestream-to-it "^1.0.3" + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" + integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== + +browser-util-inspect@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browser-util-inspect/-/browser-util-inspect-0.2.0.tgz#cdda8ce1a4a07a4386035168a228c8777bff459c" + integrity sha1-zdqM4aSgekOGA1FooijId3v/RZw= + +browserslist@^4.17.5: + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== + dependencies: + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufrw@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" + integrity sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ== + dependencies: + ansi-color "^0.2.1" + error "^7.0.0" + hexer "^1.5.0" + xtend "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001313: + version "1.0.30001316" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001316.tgz#b44a1f419f82d2e119aa0bbdab5ec15471796358" + integrity sha512-JgUdNoZKxPZFzbzJwy4hDSyGuH/gXz2rN51QmoR8cBQsVo58llD3A0vlRKKRt8FGf5u69P9eQyIH8/z9vN/S0Q== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cids@^1.0.0, cids@^1.1.4: + version "1.1.9" + resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.9.tgz#402c26db5c07059377bcd6fb82f2a24e7f2f4a4f" + integrity sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg== + dependencies: + multibase "^4.0.1" + multicodec "^3.0.1" + multihashes "^4.0.1" + uint8arrays "^3.0.0" + +cids@~0.8.0: + version "0.8.3" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" + integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== + dependencies: + buffer "^5.6.0" + class-is "^1.1.0" + multibase "^1.0.0" + multicodec "^1.0.1" + multihashes "^1.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.2.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-table3@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-block-writer@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" + integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0, colors@^1.1.2, colors@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" + integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== + +commander@^2.15.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copyfiles@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-fetch@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" + integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== + dependencies: + node-fetch "2.6.0" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-compare@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== + dependencies: + buffer-equal "^1.0.0" + minimatch "^3.0.4" + +dns-over-http-resolver@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" + integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== + dependencies: + debug "^4.3.1" + native-fetch "^3.0.0" + receptacle "^1.3.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dotenv@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-fetch@^1.7.2: + version "1.7.4" + resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.4.tgz#af975ab92a14798bfaa025f88dcd2e54a7b0b769" + integrity sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw== + dependencies: + encoding "^0.1.13" + +electron-to-chromium@^1.4.76: + version "1.4.83" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.83.tgz#24a2a7687786896c758e7dd22f218fd3f0ad1e67" + integrity sha512-Wm15TA5pLMOHtsik6uQTVyzXG8IpkVxnXAoAqV4+6zbJH3n5qnVz3iNAW+65r6WSrrYo0w6B8JJ0lcv2NhSmXQ== + +elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" + integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== + dependencies: + ansi-colors "^3.2.1" + +err-code@^2.0.0, err-code@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +err-code@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.18.5: + version "1.19.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-plugin-formatjs@2.12.7: + version "2.12.7" + resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-2.12.7.tgz#cab187f6676581502d495c6131d548382607baec" + integrity sha512-jT4s8v+2zGjiT40ozTk3eCdGvbZUrJ4P5DWdttkKWyNHOqn/ChFQ7qdBz/d64VsZT6kbmznpdjiGlSIqup8/WA== + dependencies: + "@formatjs/ts-transformer" "3.2.0" + "@types/emoji-regex" "^8.0.0" + "@types/eslint" "^7.2.0" + "@typescript-eslint/typescript-estree" "^3.6.0" + emoji-regex "^9.0.0" + intl-messageformat-parser "6.4.2" + tslib "^2.1.0" + +eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +ethers@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.7.tgz#41c3d774e0a57bfde12b0198885789fb41a14976" + integrity sha512-1Zu9s+z4BgsDAZcGIYACJdWBB6mVtCCmUonj68Njul7STcSdgwOyj0sCAxCUr2Nsmsamckr4E12q3ecvZPGAUw== + dependencies: + "@ethersproject/abi" "^5.0.0" + "@ethersproject/abstract-provider" "^5.0.0" + "@ethersproject/abstract-signer" "^5.0.0" + "@ethersproject/address" "^5.0.0" + "@ethersproject/base64" "^5.0.0" + "@ethersproject/bignumber" "^5.0.0" + "@ethersproject/bytes" "^5.0.0" + "@ethersproject/constants" "^5.0.0" + "@ethersproject/contracts" "^5.0.0" + "@ethersproject/hash" "^5.0.0" + "@ethersproject/hdnode" "^5.0.0" + "@ethersproject/json-wallets" "^5.0.0" + "@ethersproject/keccak256" "^5.0.0" + "@ethersproject/logger" "^5.0.0" + "@ethersproject/networks" "^5.0.0" + "@ethersproject/pbkdf2" "^5.0.0" + "@ethersproject/properties" "^5.0.0" + "@ethersproject/providers" "^5.0.0" + "@ethersproject/random" "^5.0.0" + "@ethersproject/rlp" "^5.0.0" + "@ethersproject/sha2" "^5.0.0" + "@ethersproject/signing-key" "^5.0.0" + "@ethersproject/solidity" "^5.0.0" + "@ethersproject/strings" "^5.0.0" + "@ethersproject/transactions" "^5.0.0" + "@ethersproject/units" "^5.0.0" + "@ethersproject/wallet" "^5.0.0" + "@ethersproject/web" "^5.0.0" + "@ethersproject/wordlists" "^5.0.0" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +explain-error@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/explain-error/-/explain-error-1.0.4.tgz#a793d3ac0cad4c6ab571e9968fbbab6cb2532929" + integrity sha1-p5PTrAytTGq1cemWj7urbLJTKSk= + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-fifo@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" + integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== + +fast-glob@^3.2.5: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-memoize@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.14.0: + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + +form-data@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" + integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fs-extra@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + 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" + +fs-jetpack@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" + integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== + dependencies: + minimatch "^3.0.2" + rimraf "^2.6.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.1.2, fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" + integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^5.1.2, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + 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" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +gluegun@4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-4.6.1.tgz#f2a65d20378873de87a2143b8c3939ffc9a9e2b6" + integrity sha512-Jd5hV1Uku2rjBg59mYA/bnwLwynK7u9A1zmK/LIb/p5d3pzjDCKRjWFuxZXyPwl9rsvKGhJUQxkFo2HEy8crKQ== + dependencies: + apisauce "^2.0.1" + app-module-path "^2.2.0" + cli-table3 "~0.5.0" + colors "^1.3.3" + cosmiconfig "6.0.0" + cross-spawn "^7.0.0" + ejs "^2.6.1" + enquirer "2.3.4" + execa "^3.0.0" + fs-jetpack "^2.2.2" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.lowercase "^4.3.0" + lodash.lowerfirst "^4.3.1" + lodash.pad "^4.5.1" + lodash.padend "^4.6.1" + lodash.padstart "^4.6.1" + lodash.repeat "^4.1.0" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.trim "^4.5.1" + lodash.trimend "^4.5.1" + lodash.trimstart "^4.5.1" + lodash.uppercase "^4.3.0" + lodash.upperfirst "^4.3.1" + ora "^4.0.0" + pluralize "^8.0.0" + ramdasauce "^2.1.0" + semver "^7.0.0" + which "^2.0.0" + yargs-parser "^16.1.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +graphql-json-transform@^1.1.0-alpha.0: + version "1.1.0-alpha.0" + resolved "https://registry.yarnpkg.com/graphql-json-transform/-/graphql-json-transform-1.1.0-alpha.0.tgz#fb0c88d24840067e6c55ac64bbc8d4e5de245d2d" + integrity sha512-I6lR/lYEezSz4iru0f7a/wR8Rzi3pCafk7S0bX2b/WQOtK0vKabxLShGBXIslsi0arMehIjvOPHJl7MpOUqj0w== + +graphql-tag@2.10.4: + version "2.10.4" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.4.tgz#2f301a98219be8b178a6453bb7e33b79b66d8f83" + integrity sha512-O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA== + +graphql-tag@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== + +graphql@15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" + integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hexer@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" + integrity sha1-uGzoCFmOip0YksVx887dhvyfBlM= + dependencies: + ansi-color "^0.2.1" + minimist "^1.1.0" + process "^0.10.0" + xtend "^4.0.0" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +idna-uts46-hx@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-3.4.0.tgz#aa380e7c04d6bce4f5e26da742c613ea2996f470" + integrity sha512-b1I4qYTcJcX1TANn8OhOGrQUIWOfZUWrLKWDeKbV6posVLjp7OTqFKX3N20efrIMzQM1KhiphOEazBEEUFR9bg== + dependencies: + punycode "^2.1.1" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +import-fresh@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +intl-messageformat-parser@6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.4.2.tgz#e2d28c3156c27961ead9d613ca55b6a155078d7d" + integrity sha512-IVNGy24lNEYr/KPWId5tF3KXRHFFbMgzIMI4kUonNa/ide2ywUYyBuOUro1IBGZJqjA2ncBVUyXdYKlMfzqpAA== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +intl-messageformat@9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.5.2.tgz#e72d32152c760b7411e413780e462909987c005a" + integrity sha512-sBGXcSQLyBuBA/kzAYhTpzhzkOGfSwGIau2W6FuwLZk0JE+VF3C+y0077FhVDOcRSi60iSfWzT8QC3Z7//dFxw== + dependencies: + fast-memoize "^2.5.2" + intl-messageformat-parser "6.4.2" + tslib "^2.1.0" + +invert-kv@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" + integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipfs-core-utils@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.5.4.tgz#c7fa508562086be65cebb51feb13c58abbbd3d8d" + integrity sha512-V+OHCkqf/263jHU0Fc9Rx/uDuwlz3PHxl3qu6a5ka/mNi6gucbFuI53jWsevCrOOY9giWMLB29RINGmCV5dFeQ== + dependencies: + any-signal "^2.0.0" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + cids "^1.0.0" + err-code "^2.0.3" + ipfs-utils "^5.0.0" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.1" + multiaddr "^8.0.0" + multiaddr-to-uri "^6.0.0" + parse-duration "^0.4.4" + timeout-abort-controller "^1.1.1" + uint8arrays "^1.1.0" + +ipfs-http-client@48.1.3: + version "48.1.3" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-48.1.3.tgz#d9b91b1f65d54730de92290d3be5a11ef124b400" + integrity sha512-+JV4cdMaTvYN3vd4r6+mcVxV3LkJXzc4kn2ToVbObpVpdqmG34ePf1KlvFF8A9gjcel84WpiP5xCEV/IrisPBA== + dependencies: + any-signal "^2.0.0" + bignumber.js "^9.0.0" + cids "^1.0.0" + debug "^4.1.1" + form-data "^3.0.0" + ipfs-core-utils "^0.5.4" + ipfs-utils "^5.0.0" + ipld-block "^0.11.0" + ipld-dag-cbor "^0.17.0" + ipld-dag-pb "^0.20.0" + ipld-raw "^6.0.0" + it-last "^1.0.4" + it-map "^1.0.4" + it-tar "^1.2.2" + it-to-stream "^0.1.2" + merge-options "^2.0.0" + multiaddr "^8.0.0" + multibase "^3.0.0" + multicodec "^2.0.1" + multihashes "^3.0.1" + nanoid "^3.1.12" + native-abort-controller "~0.0.3" + parse-duration "^0.4.4" + stream-to-it "^0.2.2" + uint8arrays "^1.1.0" + +ipfs-utils@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-5.0.1.tgz#7c0053d5e77686f45577257a73905d4523e6b4f7" + integrity sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg== + dependencies: + abort-controller "^3.0.0" + any-signal "^2.1.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^2.0.0" + fs-extra "^9.0.1" + is-electron "^2.2.0" + iso-url "^1.0.0" + it-glob "0.0.10" + it-to-stream "^0.1.2" + merge-options "^2.0.0" + nanoid "^3.1.3" + native-abort-controller "0.0.3" + native-fetch "^2.0.0" + node-fetch "^2.6.0" + stream-to-it "^0.2.0" + +ipld-block@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/ipld-block/-/ipld-block-0.11.1.tgz#c3a7b41aee3244187bd87a73f980e3565d299b6e" + integrity sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw== + dependencies: + cids "^1.0.0" + +ipld-dag-cbor@^0.17.0: + version "0.17.1" + resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz#842e6c250603e5791049168831a425ec03471fb1" + integrity sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw== + dependencies: + borc "^2.1.2" + cids "^1.0.0" + is-circular "^1.0.2" + multicodec "^3.0.1" + multihashing-async "^2.0.0" + uint8arrays "^2.1.3" + +ipld-dag-pb@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz#025c0343aafe6cb9db395dd1dc93c8c60a669360" + integrity sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + protons "^2.0.0" + reset "^0.1.0" + run "^1.4.0" + stable "^0.1.8" + uint8arrays "^1.0.0" + +ipld-raw@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-6.0.0.tgz#74d947fcd2ce4e0e1d5bb650c1b5754ed8ea6da0" + integrity sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg== + dependencies: + cids "^1.0.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-circular@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" + integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== + +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-electron@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.1.tgz#751b1dd8a74907422faa5c35aaa0cf66d98086e9" + integrity sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-ipfs@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-1.0.3.tgz#4b8c4995c46beac38f0c05f8cecd77093dd6a6b3" + integrity sha512-7SAfhxp39rxMvr95qjHMtsle1xa7zXpIbhX/Q77iXKtMVnQ0Fr9AVpAUq+bl3HPXGXDpZJFP0hzWBZaMwD6vGg== + dependencies: + buffer "^5.6.0" + cids "~0.8.0" + iso-url "~0.4.7" + mafmt "^7.1.0" + multiaddr "^7.4.3" + multibase "~0.7.0" + multihashes "~0.4.19" + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-negative-zero@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" + integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-weakref@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +iso-constants@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" + integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== + +iso-url@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +it-all@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" + integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== + +it-concat@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-1.0.3.tgz#84db9376e4c77bf7bc1fd933bb90f184e7cef32b" + integrity sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA== + dependencies: + bl "^4.0.0" + +it-glob@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.10.tgz#4defd9286f693847c3ff483d2ff65f22e1359ad8" + integrity sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA== + dependencies: + fs-extra "^9.0.1" + minimatch "^3.0.4" + +it-last@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" + integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== + +it-map@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" + integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== + +it-peekable@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" + integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== + +it-reader@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-2.1.0.tgz#b1164be343f8538d8775e10fb0339f61ccf71b0f" + integrity sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw== + dependencies: + bl "^4.0.0" + +it-tar@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-1.2.2.tgz#8d79863dad27726c781a4bcc491f53c20f2866cf" + integrity sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA== + dependencies: + bl "^4.0.0" + buffer "^5.4.3" + iso-constants "^0.1.2" + it-concat "^1.0.0" + it-reader "^2.0.0" + p-defer "^3.0.0" + +it-to-stream@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.2.tgz#7163151f75b60445e86b8ab1a968666acaacfe7b" + integrity sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ== + dependencies: + buffer "^5.6.0" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +iterable-ndjson@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" + integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== + dependencies: + string_decoder "^1.2.0" + +jaeger-client@^3.15.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" + integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== + dependencies: + node-int64 "^0.4.0" + opentracing "^0.14.4" + thriftrw "^3.5.0" + uuid "^8.3.2" + xorshift "^1.1.1" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^25.2.1: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha1-py8hfcSvxGKf/1/rME3BvVGi89I= + dependencies: + delimit-stream "0.1.0" + +json5@2.x, json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonschema@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" + integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +lcid@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" + integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== + dependencies: + invert-kv "^3.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.lowercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" + integrity sha1-RlFaztSssLcJMTMzOvBo5MOxTp0= + +lodash.lowerfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d" + integrity sha1-3jx7EuAsZSSgBZwvbLfFxSZVoT0= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pad@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" + integrity sha1-QzCUmoM6fI2iLMIPaibE1Z3runA= + +lodash.padend@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" + integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4= + +lodash.padstart@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= + +lodash.repeat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" + integrity sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ= + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40= + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= + +lodash.trim@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" + integrity sha1-NkJefukL5KpeJ7zruFt9EepHqlc= + +lodash.trimend@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimend/-/lodash.trimend-4.5.1.tgz#12804437286b98cad8996b79414e11300114082f" + integrity sha1-EoBENyhrmMrYmWt5QU4RMAEUCC8= + +lodash.trimstart@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz#8ff4dec532d82486af59573c39445914e944a7f1" + integrity sha1-j/TexTLYJIavWVc8OURZFOlEp/E= + +lodash.uppercase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" + integrity sha1-xASr/RRp+Tkx+bskz2zH1XBZvHM= + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= + +lodash@4.x, lodash@^4.17.15, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +long@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" + integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8= + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +mafmt@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" + integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== + dependencies: + multiaddr "^7.3.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +mem@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + +merge-options@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" + integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== + dependencies: + is-plain-obj "^2.0.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@*: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiaddr-to-uri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz#8f08a75c6eeb2370d5d24b77b8413e3f0fa9bcc0" + integrity sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A== + dependencies: + multiaddr "^8.0.0" + +multiaddr@^7.3.0, multiaddr@^7.4.3: + version "7.5.0" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" + integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== + dependencies: + buffer "^5.5.0" + cids "~0.8.0" + class-is "^1.1.0" + is-ip "^3.1.0" + multibase "^0.7.0" + varint "^5.0.0" + +multiaddr@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" + integrity sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + dns-over-http-resolver "^1.0.0" + err-code "^2.0.3" + is-ip "^3.1.0" + multibase "^3.0.0" + uint8arrays "^1.1.0" + varint "^5.0.0" + +multibase@^0.7.0, multibase@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@^1.0.0, multibase@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" + integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@^3.0.0, multibase@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" + integrity sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw== + dependencies: + "@multiformats/base-x" "^4.0.1" + web-encoding "^1.0.6" + +multibase@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559" + integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ== + dependencies: + "@multiformats/base-x" "^4.0.1" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^1.0.0, multicodec@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multicodec@^2.0.0, multicodec@^2.0.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-2.1.3.tgz#b9850635ad4e2a285a933151b55b4a2294152a5d" + integrity sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA== + dependencies: + uint8arrays "1.1.0" + varint "^6.0.0" + +multicodec@^3.0.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2" + integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw== + dependencies: + uint8arrays "^3.0.0" + varint "^6.0.0" + +multiformats@^9.4.2: + version "9.6.4" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.6.4.tgz#5dce1f11a407dbb69aa612cb7e5076069bb759ca" + integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg== + +multihashes@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" + integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== + dependencies: + buffer "^5.6.0" + multibase "^1.0.1" + varint "^5.0.0" + +multihashes@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" + integrity sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ== + dependencies: + multibase "^3.1.0" + uint8arrays "^2.0.5" + varint "^6.0.0" + +multihashes@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05" + integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA== + dependencies: + multibase "^4.0.1" + uint8arrays "^3.0.0" + varint "^5.0.2" + +multihashes@~0.4.15, multihashes@~0.4.19: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +multihashing-async@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843" + integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg== + dependencies: + blakejs "^1.1.0" + err-code "^3.0.0" + js-sha3 "^0.8.0" + multihashes "^4.0.1" + murmurhash3js-revisited "^3.0.0" + uint8arrays "^3.0.0" + +multimatch@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +murmurhash3js-revisited@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" + integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== + +mustache@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" + integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nanoid@^3.1.12, nanoid@^3.1.3: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-abort-controller@0.0.3, native-abort-controller@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-0.0.3.tgz#4c528a6c9c7d3eafefdc2c196ac9deb1a5edf2f8" + integrity sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA== + dependencies: + globalthis "^1.0.1" + +native-abort-controller@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" + integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== + +native-fetch@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-2.0.1.tgz#319d53741a7040def92d5dc8ea5fe9416b1fad89" + integrity sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ== + dependencies: + globalthis "^1.0.1" + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-fetch@^2.6.0: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opentracing@^0.14.4: + version "0.14.7" + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" + integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +ora@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.0.tgz#374c4ee8c5fb91b5dbcd82de199f188d3e8fd5ec" + integrity sha512-2RaV0LWJgpWEjvpsW57H8pnzdVQJrtAr4VGk9cIqn58ePx5k1b0H3h9DS2Qj4cL1Cm012JSeg+7AcVNsis6AVQ== + dependencies: + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +ora@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" + integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-locale@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" + integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== + dependencies: + execa "^4.0.0" + lcid "^3.0.0" + mem "^5.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-duration@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-0.4.4.tgz#11c0f51a689e97d06c57bd772f7fda7dc013243c" + integrity sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +pretty-format@^25.2.1, pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" + integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + +protons@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/protons/-/protons-2.0.3.tgz#94f45484d04b66dfedc43ad3abff1e8907994bb2" + integrity sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA== + dependencies: + protocol-buffers-schema "^3.3.1" + signed-varint "^2.0.1" + uint8arrays "^3.0.0" + varint "^5.0.0" + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pull-stream-to-async-iterator@^1.0.1, pull-stream-to-async-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz#5cc1a3a146ef6bbf01c17755647369b683b24986" + integrity sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA== + dependencies: + pull-stream "^3.6.9" + +pull-stream@^3.6.9: + version "3.6.14" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" + integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +ramda@^0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" + integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc= + +ramdasauce@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" + integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== + dependencies: + ramda "^0.24.1" + +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + 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" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +reset@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/reset/-/reset-0.1.0.tgz#9fc7314171995ae6cb0b7e58b06ce7522af4bafb" + integrity sha1-n8cxQXGZWubLC35YsGznUir0uvs= + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.0, resolve@^1.18.1: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retimer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" + integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@3.0.2, rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/run/-/run-1.4.0.tgz#e17d9e9043ab2fe17776cb299e1237f38f0b4ffa" + integrity sha1-4X2ekEOrL+F3dsspnhI3848LT/o= + dependencies: + minimatch "*" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +"semver@2 || 3 || 4 || 5", semver@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.3.5, semver@7.x, semver@^7.0.0, semver@^7.1.3, semver@^7.3.2: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signed-varint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" + integrity sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk= + dependencies: + varint "~5.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.17, source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +spawn-command@0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-to-it@^0.2.0, stream-to-it@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" + integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== + dependencies: + get-iterator "^1.0.2" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + 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" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1, string_decoder@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +thriftrw@^3.5.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" + integrity sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw== + dependencies: + bufrw "^1.3.0" + error "7.0.2" + long "^2.4.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timeout-abort-controller@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29" + integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ== + dependencies: + abort-controller "^3.0.0" + retimer "^2.0.0" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +ts-jest@26.5.4: + version "26.5.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.4.tgz#207f4c114812a9c6d5746dd4d1cdf899eafc9686" + integrity sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-morph@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-10.0.1.tgz#5a620cc4ef85e3e6d161989e690f44d0a0f723b0" + integrity sha512-T1zufImtp5goTLTFhzi7XuKR1y/f+Jwz1gSULzB045LFjXuoqVlR87sfkpyWow8u2JwgusCJrhOnwmHCFNutTQ== + dependencies: + "@dsherret/to-absolute-glob" "^2.0.2" + "@ts-morph/common" "~0.8.0" + code-block-writer "^10.1.1" + +ts-node@8.10.2: + version "8.10.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" + integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.17.1: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.7.tgz#7168032c43d2a2671c95c07812f69523c79590af" + integrity sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og== + +typescript@^4.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" + integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== + dependencies: + multibase "^3.0.0" + web-encoding "^1.0.2" + +uint8arrays@^2.0.5, uint8arrays@^2.1.3: + version "2.1.10" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a" + integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.0.0.tgz#260869efb8422418b6f04e3fac73a3908175c63b" + integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== + dependencies: + multiformats "^9.4.2" + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@^0.12.3: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +uuid@8.3.2, uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +varint@^5.0.0, varint@^5.0.2, varint@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +web-encoding@^1.0.2, web-encoding@^1.0.6: + version "1.1.5" + resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" + integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== + dependencies: + util "^0.12.3" + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-typed-array@^1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" + integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.18.5" + foreach "^2.0.5" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.7" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.0, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + +ws@7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@^7.4.6: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xorshift@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" + integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== + +xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + 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" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zone.js@^0.11.0: + version "0.11.5" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.11.5.tgz#ab0b449e91fadb5ebb2db189ffe1b7b6048dc8b1" + integrity sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g== + dependencies: + tslib "^2.3.0" From aab773e07381f36cc5f6b423b05cb5378419cb9f Mon Sep 17 00:00:00 2001 From: drewhoang Date: Tue, 15 Mar 2022 01:38:22 -0700 Subject: [PATCH 02/23] started working on app commander refactor --- packages/cli/src/commands/app.ts | 34 ++++++++++++++++++++++++++++++ packages/cli/src/commands/index.ts | 1 + 2 files changed, 35 insertions(+) create mode 100644 packages/cli/src/commands/app.ts diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts new file mode 100644 index 0000000000..93d1b3e3ee --- /dev/null +++ b/packages/cli/src/commands/app.ts @@ -0,0 +1,34 @@ +import { Command, Program } from "./types"; +import { + intlMsg, +} from "../lib"; + + +export const app: Command = { + setup: (program: Program) => { + + const defaultOutputTypesDir = "./src/w3"; + + const appCommand = program + .alias("a") + .command("app") + .description(intlMsg.commands_app_description()) + + appCommand + .command("codegen") + .description(intlMsg.commands_app_codegen()) + .option(`-m, --manifest-file <${intlMsg.commands_codegen_options_o_path()}>`, intlMsg.commands_app_options_codegen( + { + default: defaultOutputTypesDir, + } + )) + .option(`-c, --codegen-dir <${intlMsg.commands_codegen_options_o_path()}>`, `${intlMsg.commands_app_options_codegen( + { + default: defaultOutputTypesDir, + } + )}`) + .action(async (options) => { + console.log(options); + }); + } +} \ No newline at end of file diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index b31bc30b83..def9565e68 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -1 +1,2 @@ +export * from "./app" export * from "./test-env"; From e35da73fd62ed33251d6e9694bfadfbdf1aed04d Mon Sep 17 00:00:00 2001 From: drewhoang Date: Tue, 15 Mar 2022 13:14:55 -0700 Subject: [PATCH 03/23] add the rest of the options commands for commander.js for refactor --- packages/cli/src/commands/app.ts | 47 ++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 93d1b3e3ee..38e12f1e99 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -1,7 +1,16 @@ import { Command, Program } from "./types"; +import fs from 'fs'; import { + //AppProject, + //CodeGenerator, + //SchemaComposer, intlMsg, -} from "../lib"; + //fixParameters, + //resolvePathIfExists, + defaultAppManifest, + // getSimpleClient, + // getTestEnvProviders, + } from "../lib"; export const app: Command = { @@ -27,8 +36,42 @@ export const app: Command = { default: defaultOutputTypesDir, } )}`) + .option(`-i, --ipfs [<${intlMsg.commands_codegen_options_i_node()}>] `, `${intlMsg.commands_codegen_options_i()}`) + .option(`-e, --ens [<${intlMsg.commands_codegen_options_e_address()}>]`, `${intlMsg.commands_codegen_options_e()}`) .action(async (options) => { - console.log(options); + await run(options); }); } +} + +async function run(options:any) { + + console.log(options) + // Resolve manifest + const manifestPaths = options.manifestFile ? [options.manifestFile] : defaultAppManifest; + + function resolvePathIfExists( + searchPaths: string[] + ): string | undefined { + for (let i = 0; i < manifestPaths.length; i++) { + if (fs.existsSync(searchPaths[i])) { + return searchPaths[i]; + } + } + return undefined; + } + + let manifestFile = resolvePathIfExists(manifestPaths) + + if (!manifestFile) { + console.error( + intlMsg.commands_app_error_manifestNotFound({ + paths: manifestPaths.join(", "), + }) + ); + return; + } + + // TODO + // add the rest of the logic } \ No newline at end of file From 59d4ee590c461c13d18e20444c47d28291da7111 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Mon, 21 Mar 2022 18:04:18 -0700 Subject: [PATCH 04/23] add refactor to app still need to work on the codegenDir --- packages/cli/src/commands/app.ts | 113 +++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 34 deletions(-) diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 38e12f1e99..5e13e781d8 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -1,16 +1,19 @@ import { Command, Program } from "./types"; import fs from 'fs'; import { - //AppProject, - //CodeGenerator, - //SchemaComposer, + AppProject, + CodeGenerator, + SchemaComposer, intlMsg, //fixParameters, //resolvePathIfExists, defaultAppManifest, - // getSimpleClient, - // getTestEnvProviders, - } from "../lib"; + getSimpleClient, + getTestEnvProviders, +} from "../lib"; + +import { Web3ApiClient } from "@web3api/client-js"; +import * as path from "path"; export const app: Command = { @@ -31,47 +34,89 @@ export const app: Command = { default: defaultOutputTypesDir, } )) - .option(`-c, --codegen-dir <${intlMsg.commands_codegen_options_o_path()}>`, `${intlMsg.commands_app_options_codegen( + .option(`-c, --codegen-dir <${intlMsg.commands_codegen_options_o_path()}>`, `${intlMsg.commands_app_options_codegen( { - default: defaultOutputTypesDir, + default: defaultOutputTypesDir, } - )}`) - .option(`-i, --ipfs [<${intlMsg.commands_codegen_options_i_node()}>] `, `${intlMsg.commands_codegen_options_i()}`) - .option(`-e, --ens [<${intlMsg.commands_codegen_options_e_address()}>]`, `${intlMsg.commands_codegen_options_e()}`) + )}`) + .option(`-i, --ipfs [<${intlMsg.commands_codegen_options_i_node()}>] `, `${intlMsg.commands_codegen_options_i()}`) + .option(`-e, --ens [<${intlMsg.commands_codegen_options_e_address()}>]`, `${intlMsg.commands_codegen_options_e()}`) .action(async (options) => { await run(options); }); } } -async function run(options:any) { +async function run(options: any) { + + console.log(options) + + let { codegenDir, ipfs, ens } = options; - console.log(options) - // Resolve manifest - const manifestPaths = options.manifestFile ? [options.manifestFile] : defaultAppManifest; + // Resolve manifest + const manifestPaths = options.manifestFile ? [options.manifestFile] : defaultAppManifest; - function resolvePathIfExists( - searchPaths: string[] - ): string | undefined { - for (let i = 0; i < manifestPaths.length; i++) { - if (fs.existsSync(searchPaths[i])) { + function resolvePathIfExists( + searchPaths: string[] + ): string | undefined { + for (let i = 0; i < manifestPaths.length; i++) { + if (fs.existsSync(searchPaths[i])) { return searchPaths[i]; - } } - return undefined; - } - - let manifestFile = resolvePathIfExists(manifestPaths) - - if (!manifestFile) { - console.error( + } + return undefined; + } + + let manifestFile = resolvePathIfExists(manifestPaths) + + if (!manifestFile) { + console.error( intlMsg.commands_app_error_manifestNotFound({ - paths: manifestPaths.join(", "), + paths: manifestPaths.join(", "), }) - ); - return; - } + ); + return; + } + + // Get providers and client + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + const client: Web3ApiClient = getSimpleClient({ + ensAddress, + ethProvider, + ipfsProvider, + }); + + // App project + const project = new AppProject({ + rootCacheDir: path.dirname(manifestFile), + appManifestPath: manifestFile, + client, + }); + await project.validate(); - // TODO - // add the rest of the logic + // TODO + // if (codegenDir) { + // codegenDir = filesystem.resolve(codegenDir); + // } else { + // codegenDir = filesystem.resolve(defaultOutputTypesDir); + // } + + const schemaComposer = new SchemaComposer({ + project, + client, + }); + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + outputDir: codegenDir, + }); + + + if (await codeGenerator.generate()) { + console.log(`🔥 ${intlMsg.commands_app_success()} 🔥`); + process.exitCode = 0; + } else { + process.exitCode = 1; + } } \ No newline at end of file From 0a81f2214a88573c65b88df4d0f0c915efb78999 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Mon, 21 Mar 2022 18:17:02 -0700 Subject: [PATCH 05/23] made some TODO on which of the commands need to be refactored to commander --- packages/cli/src/commands/app.ts | 17 +- packages/cli/src/commands/build.ts | 363 +++++++++++++++++++++++++++ packages/cli/src/commands/codegen.ts | 198 +++++++++++++++ packages/cli/src/commands/create.ts | 180 +++++++++++++ packages/cli/src/commands/plugin.ts | 245 ++++++++++++++++++ packages/cli/src/commands/query.ts | 236 +++++++++++++++++ 6 files changed, 1228 insertions(+), 11 deletions(-) create mode 100644 packages/cli/src/commands/build.ts create mode 100644 packages/cli/src/commands/codegen.ts create mode 100644 packages/cli/src/commands/create.ts create mode 100644 packages/cli/src/commands/plugin.ts create mode 100644 packages/cli/src/commands/query.ts diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 5e13e781d8..1b7759023c 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -15,12 +15,11 @@ import { import { Web3ApiClient } from "@web3api/client-js"; import * as path from "path"; +const defaultOutputTypesDir = "./src/w3"; export const app: Command = { setup: (program: Program) => { - const defaultOutputTypesDir = "./src/w3"; - const appCommand = program .alias("a") .command("app") @@ -49,8 +48,6 @@ export const app: Command = { async function run(options: any) { - console.log(options) - let { codegenDir, ipfs, ens } = options; // Resolve manifest @@ -95,12 +92,11 @@ async function run(options: any) { }); await project.validate(); - // TODO - // if (codegenDir) { - // codegenDir = filesystem.resolve(codegenDir); - // } else { - // codegenDir = filesystem.resolve(defaultOutputTypesDir); - // } + if (codegenDir) { + codegenDir = codegenDir; + } else { + codegenDir = defaultOutputTypesDir; + } const schemaComposer = new SchemaComposer({ project, @@ -112,7 +108,6 @@ async function run(options: any) { outputDir: codegenDir, }); - if (await codeGenerator.generate()) { console.log(`🔥 ${intlMsg.commands_app_success()} 🔥`); process.exitCode = 0; diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts new file mode 100644 index 0000000000..bbd70ba958 --- /dev/null +++ b/packages/cli/src/commands/build.ts @@ -0,0 +1,363 @@ +// TODO build refactor +/* eslint-disable prefer-const */ +import { + Compiler, + Web3ApiProject, + SchemaComposer, + Watcher, + WatchEvent, + watchEventName, + publishToIPFS, + intlMsg, + getDockerFileLock, + defaultWeb3ApiManifest, + resolvePathIfExists, + getTestEnvProviders, + isDockerInstalled, + } from "../lib"; + + import chalk from "chalk"; + import axios from "axios"; + import path from "path"; + import readline from "readline"; + import { GluegunToolbox, GluegunPrint } from "gluegun"; + + const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); + const defaultOutputDirectory = "./build"; + const optionsStr = intlMsg.commands_build_options_options(); + const nodeStr = intlMsg.commands_build_options_i_node(); + const pathStr = intlMsg.commands_build_options_o_path(); + const addrStr = intlMsg.commands_build_options_e_address(); + const domStr = intlMsg.commands_build_options_e_domain(); + + const HELP = ` + ${chalk.bold("w3 build")} [${optionsStr}] + + ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: + -h, --help ${intlMsg.commands_build_options_h()} + -m, --manifest-file <${pathStr}> ${intlMsg.commands_build_options_m({ + default: defaultManifestStr, + })} + -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_build_options_i()} + -o, --output-dir <${pathStr}> ${intlMsg.commands_build_options_o()} + -e, --test-ens <[${addrStr},]${domStr}> ${intlMsg.commands_build_options_e()} + -w, --watch ${intlMsg.commands_build_options_w()} + -v, --verbose ${intlMsg.commands_build_options_v()} + `; + + export default { + alias: ["b"], + description: intlMsg.commands_build_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters, print } = toolbox; + + // Options + const { h, m, i, o, w, e, v } = parameters.options; + let { + help, + manifestFile, + ipfs, + outputDir, + watch, + testEns, + verbose, + } = parameters.options; + + help = help || h; + manifestFile = manifestFile || m; + ipfs = ipfs || i; + outputDir = outputDir || o; + watch = watch || w; + testEns = testEns || e; + verbose = verbose || v; + + // Validate Params + const paramsValid = validateBuildParams( + print, + manifestFile, + outputDir, + testEns, + ipfs + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + // Ensure docker is installed + if (!isDockerInstalled()) { + print.error(intlMsg.lib_docker_noInstall()); + return; + } + + // Resolve manifest & output directory + const manifestPaths = manifestFile + ? [manifestFile as string] + : defaultWeb3ApiManifest; + manifestFile = resolvePathIfExists(filesystem, manifestPaths); + + if (!manifestFile) { + print.error( + intlMsg.commands_build_error_manifestNotFound({ + paths: manifestPaths.join(", "), + }) + ); + return; + } + + outputDir = + (outputDir && filesystem.resolve(outputDir)) || + filesystem.path(defaultOutputDirectory); + + // Gather providers + let ipfsProvider: string | undefined; + let ethProvider: string | undefined; + let ensAddress: string | undefined; + let ensDomain: string | undefined; + + if (typeof ipfs === "string") { + // Custom IPFS provider + ipfsProvider = ipfs; + } else if (ipfs) { + // Try to get the dev server's IPFS & ETH providers + const testEnvProviders = await getTestEnvProviders(); + ipfsProvider = testEnvProviders.ipfsProvider; + ethProvider = testEnvProviders.ethProvider; + } + + if (typeof testEns == "string") { + // Fetch the ENS domain, and optionally the address + if (testEns.indexOf(",") > -1) { + const [addr, dom] = testEns.split(","); + ensAddress = addr; + ensDomain = dom; + } else { + ensDomain = testEns; + } + + // If not address was provided, fetch it from the server + // or deploy a new instance + if (!ensAddress) { + const getEns = await axios.get("http://localhost:4040/ens"); + + if (!getEns.data.ensAddress) { + const deployEns = await axios.get("http://localhost:4040/deploy-ens"); + ensAddress = deployEns.data.ensAddress; + } else { + ensAddress = getEns.data.ensAddress; + } + } + } + + // Aquire a system-wide lock file for the docker service + const dockerLock = getDockerFileLock(); + + const project = new Web3ApiProject({ + rootCacheDir: path.dirname(manifestFile), + web3apiManifestPath: manifestFile, + quiet: verbose ? false : true, + }); + await project.validate(); + + const schemaComposer = new SchemaComposer({ + project, + ensAddress, + ethProvider, + ipfsProvider, + }); + + const compiler = new Compiler({ + project, + outputDir, + schemaComposer, + }); + + const execute = async (): Promise => { + compiler.reset(); + const result = await compiler.compile(); + + if (!result) { + return result; + } + + const uris: string[][] = []; + + // publish to IPFS + if (ipfsProvider) { + const cid = await publishToIPFS(outputDir, ipfsProvider); + + print.success(`IPFS { ${cid} }`); + uris.push(["Web3API IPFS", `ipfs://${cid}`]); + + if (testEns) { + if (!ensAddress) { + uris.push([ + intlMsg.commands_build_ensRegistry(), + `${ethProvider}/${ensAddress}`, + ]); + } + + // ask the dev server to publish the CID to ENS + const { data } = await axios.get( + "http://localhost:4040/register-ens", + { + params: { + domain: ensDomain, + cid, + }, + } + ); + + if (data.success) { + uris.push(["Web3API ENS", `${testEns} => ${cid}`]); + } else { + print.error( + `${intlMsg.commands_build_error_resolution()} { ${testEns} => ${cid} }\n` + + `${intlMsg.commands_build_ethProvider()}: ${ethProvider}\n` + + `${intlMsg.commands_build_address()}: ${ensAddress}` + ); + } + + return data.success; + } + + if (uris.length) { + print.success(`${intlMsg.commands_build_uriViewers()}:`); + print.table(uris); + return true; + } else { + return false; + } + } + + return true; + }; + + if (!watch) { + await dockerLock.request(); + const result = await execute(); + await dockerLock.release(); + + if (!result) { + process.exitCode = 1; + return; + } + } else { + // Execute + await dockerLock.request(); + await execute(); + await dockerLock.release(); + + const keyPressListener = () => { + // Watch for escape key presses + print.info( + `${intlMsg.commands_build_keypressListener_watching()}: ${project.getManifestDir()}` + ); + print.info(intlMsg.commands_build_keypressListener_exit()); + readline.emitKeypressEvents(process.stdin); + process.stdin.on("keypress", async (str, key) => { + if ( + key.name == "escape" || + key.name == "q" || + (key.name == "c" && key.ctrl) + ) { + await watcher.stop(); + await dockerLock.release(); + process.kill(process.pid, "SIGINT"); + } + }); + + if (process.stdin.setRawMode) { + process.stdin.setRawMode(true); + } + + process.stdin.resume(); + }; + + keyPressListener(); + + // Watch the directory + const watcher = new Watcher(); + + watcher.start(project.getManifestDir(), { + ignored: [outputDir + "/**", project.getManifestDir() + "/**/w3/**"], + ignoreInitial: true, + execute: async (events: WatchEvent[]) => { + // Log all of the events encountered + for (const event of events) { + print.info(`${watchEventName(event.type)}: ${event.path}`); + } + + // Execute the build + await dockerLock.request(); + await execute(); + await dockerLock.release(); + + // Process key presses + keyPressListener(); + }, + }); + } + + process.exitCode = 0; + }, + }; + + function validateBuildParams( + print: GluegunPrint, + manifestFile: unknown, + outputDir: unknown, + testEns: unknown, + ipfs: unknown + ): boolean { + if (manifestFile === true) { + const manifestPathMissingMessage = intlMsg.commands_build_error_manifestPathMissing( + { + option: "--manifest-file", + argument: `<${pathStr}>`, + } + ); + print.error(manifestPathMissingMessage); + return false; + } + + if (outputDir === true) { + const outputDirMissingPathMessage = intlMsg.commands_build_error_outputDirMissingPath( + { + option: "--output-dir", + argument: `<${pathStr}>`, + } + ); + print.error(outputDirMissingPathMessage); + return false; + } + + if (testEns === true) { + const testEnsAddressMissingMessage = intlMsg.commands_build_error_testEnsAddressMissing( + { + option: "--test-ens", + argument: `<[${addrStr},]${domStr}>`, + } + ); + print.error(testEnsAddressMissingMessage); + return false; + } + + if (testEns && !ipfs) { + const testEnsNodeMissingMessage = intlMsg.commands_build_error_testEnsNodeMissing( + { + option: "--test-ens", + required: `--ipfs [<${nodeStr}>]`, + } + ); + print.error(testEnsNodeMissingMessage); + return false; + } + + return true; + } + \ No newline at end of file diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts new file mode 100644 index 0000000000..28d564b948 --- /dev/null +++ b/packages/cli/src/commands/codegen.ts @@ -0,0 +1,198 @@ +// TODO codegen refactor +/* eslint-disable prefer-const */ +import { + CodeGenerator, + Compiler, + Web3ApiProject, + SchemaComposer, + intlMsg, + defaultWeb3ApiManifest, + getTestEnvProviders, + resolvePathIfExists, + } from "../lib"; + + import chalk from "chalk"; + import path from "path"; + import { GluegunToolbox, GluegunPrint } from "gluegun"; + + const defaultCodegenDir = "./w3"; + const optionsStr = intlMsg.commands_options_options(); + const nodeStr = intlMsg.commands_codegen_options_i_node(); + const pathStr = intlMsg.commands_codegen_options_o_path(); + const addrStr = intlMsg.commands_codegen_options_e_address(); + const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); + + const HELP = ` + ${chalk.bold("w3 codegen")} [${optionsStr}] + + ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: + -h, --help ${intlMsg.commands_codegen_options_h()} + -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( + { + default: defaultManifestStr, + } + )} + -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( + { + default: defaultCodegenDir, + } + )} + -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} + -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} + -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} + `; + + export default { + alias: ["g"], + description: intlMsg.commands_codegen_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters, print } = toolbox; + + // Options + const { h, m, c, s, i, e } = parameters.options; + let { + help, + manifestFile, + codegenDir, + script, + ipfs, + ens, + } = parameters.options; + + help = help || h; + manifestFile = manifestFile || m; + codegenDir = codegenDir || c; + script = script || s; + ipfs = ipfs || i; + ens = ens || e; + + // Validate Params + const paramsValid = validateCodegenParams( + print, + codegenDir, + (dir: string) => (codegenDir = dir), + script, + ipfs, + ens + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + + // Resolve manifest file + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultWeb3ApiManifest + ); + codegenDir = codegenDir && filesystem.resolve(codegenDir); + script = script && filesystem.resolve(script); + + // Web3Api Project + const project = new Web3ApiProject({ + rootCacheDir: path.dirname(manifestFile), + web3apiManifestPath: manifestFile, + }); + await project.validate(); + + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + + if (script) { + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + customScript: script, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + } else { + const compiler = new Compiler({ + project, + outputDir: filesystem.path("build"), + schemaComposer, + }); + + result = await compiler.codegen(); + } + + if (result) { + print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); + process.exitCode = 0; + } else { + process.exitCode = 1; + } + }, + }; + + function validateCodegenParams( + print: GluegunPrint, + codegenDir: unknown, + setCodegenDir: (dir: string) => void, + script: unknown, + ipfs: unknown, + ens: unknown + ): boolean { + if (codegenDir === true) { + const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--codegen-dir", + argument: `<${pathStr}>`, + } + ); + print.error(codegenDirMessage); + return false; + } else if (!codegenDir) { + setCodegenDir(defaultCodegenDir); + } + + if (script === true) { + const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--script", + argument: `<${pathStr}>`, + } + ); + print.error(customScriptMissingPathMessage); + return false; + } + + if (ipfs === true) { + const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--ipfs", + argument: `[<${nodeStr}>]`, + } + ); + print.error(ipfsMissingMessage); + return false; + } + + if (ens === true) { + const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--ens", + argument: `[<${addrStr}>]`, + } + ); + print.error(ensAddressMissingMessage); + return false; + } + + return true; + } + \ No newline at end of file diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts new file mode 100644 index 0000000000..89eb71ffbe --- /dev/null +++ b/packages/cli/src/commands/create.ts @@ -0,0 +1,180 @@ +// TODO create refactor +import { generateProjectTemplate, fixParameters, intlMsg } from "../lib"; + +import chalk from "chalk"; +import { GluegunToolbox, GluegunPrint } from "gluegun"; + +const cmdStr = intlMsg.commands_create_options_command(); +const nameStr = intlMsg.commands_create_options_projectName(); +const optionsStr = intlMsg.commands_options_options(); +const langStr = intlMsg.commands_create_options_lang(); +const langsStr = intlMsg.commands_create_options_langs(); +const createProjStr = intlMsg.commands_create_options_createProject(); +const createAppStr = intlMsg.commands_create_options_createApp(); +const createPluginStr = intlMsg.commands_create_options_createPlugin(); +const pathStr = intlMsg.commands_create_options_o_path(); + +export const supportedLangs: { [key: string]: string[] } = { + api: ["assemblyscript", "interface"], + app: ["typescript-node", "typescript-react"], + plugin: ["typescript"], +}; + +const HELP = ` +${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] + +${intlMsg.commands_create_options_commands()}: + ${chalk.bold("api")} <${langStr}> ${createProjStr} + ${langsStr}: ${supportedLangs.api.join(", ")} + ${chalk.bold("app")} <${langStr}> ${createAppStr} + ${langsStr}: ${supportedLangs.app.join(", ")} + ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} + ${langsStr}: ${supportedLangs.plugin.join(", ")} + +Options: + -h, --help ${intlMsg.commands_create_options_h()} + -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} +`; + +export default { + alias: ["c"], + description: intlMsg.commands_create_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { parameters, print, prompt, filesystem } = toolbox; + + // Options + let { help, outputDir } = parameters.options; + const { h, o } = parameters.options; + + help = help || h; + outputDir = outputDir || o; + + let type = ""; + let lang = ""; + let name = ""; + try { + const params = parameters; + [type, lang, name] = fixParameters( + { + options: params.options, + array: params.array, + }, + { + h, + help, + } + ); + // eslint-disable-next-line no-empty + } catch (e) {} + + // Validate Params + const paramsValid = validateCreateParams( + print, + type, + lang, + name, + outputDir + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + const projectDir = outputDir ? `${outputDir}/${name}` : name; + + // check if project already exists + if (!filesystem.exists(projectDir)) { + print.newline(); + print.info(intlMsg.commands_create_settingUp()); + } else { + const directoryExistsMessage = intlMsg.commands_create_directoryExists({ + dir: projectDir, + }); + print.info(directoryExistsMessage); + const overwrite = await prompt.confirm( + intlMsg.commands_create_overwritePrompt() + ); + if (overwrite) { + const overwritingMessage = intlMsg.commands_create_overwriting({ + dir: projectDir, + }); + print.info(overwritingMessage); + filesystem.remove(projectDir); + } else { + process.exit(8); + } + } + + generateProjectTemplate(type, lang, projectDir, filesystem) + .then(() => { + print.newline(); + let readyMessage; + if (type === "api") { + readyMessage = intlMsg.commands_create_readyProtocol(); + } else if (type === "app") { + readyMessage = intlMsg.commands_create_readyApp(); + } else if (type === "plugin") { + readyMessage = intlMsg.commands_create_readyPlugin(); + } + print.info(`🔥 ${readyMessage} 🔥`); + }) + .catch((err) => { + const commandFailError = intlMsg.commands_create_error_commandFail({ + error: err.command, + }); + print.error(commandFailError); + }); + }, +}; + +function validateCreateParams( + print: GluegunPrint, + type: unknown, + lang: unknown, + name: unknown, + outputDir: unknown +): boolean { + if (!type || typeof type !== "string") { + print.error(intlMsg.commands_create_error_noCommand()); + return false; + } + + if (!lang || typeof lang !== "string") { + print.error(intlMsg.commands_create_error_noLang()); + return false; + } + + if (!name || typeof name !== "string") { + print.error(intlMsg.commands_create_error_noName()); + return false; + } + + if (!supportedLangs[type]) { + const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); + print.error(`${unrecognizedCommand} "${type}"`); + return false; + } + + if (supportedLangs[type].indexOf(lang) === -1) { + const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); + print.error(`${unrecognizedLanguage} "${lang}"`); + return false; + } + + if (outputDir === true) { + const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( + { + option: "--output-dir", + argument: `<${pathStr}>`, + } + ); + print.error(outputDirMissingPathMessage); + return false; + } + + return true; +} diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands/plugin.ts new file mode 100644 index 0000000000..72ef0457c5 --- /dev/null +++ b/packages/cli/src/commands/plugin.ts @@ -0,0 +1,245 @@ +// TODO plugin refactor +/* eslint-disable prefer-const */ +import { + CodeGenerator, + PluginProject, + SchemaComposer, + fixParameters, + resolvePathIfExists, + defaultPluginManifest, + outputManifest, + intlMsg, + getTestEnvProviders, + } from "../lib"; + + import { ComposerFilter } from "@web3api/schema-compose"; + import { writeFileSync } from "@web3api/os-js"; + import { GluegunPrint, GluegunToolbox, print } from "gluegun"; + import chalk from "chalk"; + import path from "path"; + import fs from "fs"; + + const commands = ["codegen"]; + const defaultPublishDir = "./build"; + const defaultCodegenDir = "./src/w3"; + const cmdStr = intlMsg.commands_plugin_options_command(); + const optionsStr = intlMsg.commands_options_options(); + const codegenStr = intlMsg.commands_plugin_commands_codegen(); + const pathStr = intlMsg.commands_plugin_options_path(); + const defaultManifestStr = defaultPluginManifest.join(" | "); + const nodeStr = intlMsg.commands_plugin_options_i_node(); + const addrStr = intlMsg.commands_plugin_options_e_address(); + + const HELP = ` + ${chalk.bold("w3 plugin")} ${cmdStr} [${optionsStr}] + + Commands: + ${chalk.bold("codegen")} ${codegenStr} + + Options: + -h, --help ${intlMsg.commands_plugin_options_h()} + -m, --manifest-file <${pathStr}> ${intlMsg.commands_plugin_options_m({ + default: defaultManifestStr, + })} + -p, --publish-dir <${pathStr}> ${intlMsg.commands_plugin_options_publish({ + default: defaultPublishDir, + })} + -c, --codegen-dir <${pathStr}> ${intlMsg.commands_plugin_options_codegen({ + default: defaultCodegenDir, + })} + -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_plugin_options_i()} + -e, --ens [<${addrStr}>] ${intlMsg.commands_plugin_options_e()} + `; + + export default { + alias: ["p"], + description: intlMsg.commands_plugin_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters } = toolbox; + + // Options + let { + help, + manifestFile, + publishDir, + codegenDir, + ipfs, + ens, + } = parameters.options; + const { h, m, p, c, i, e } = parameters.options; + + help = help || h; + manifestFile = manifestFile || m; + publishDir = publishDir || p; + codegenDir = codegenDir || c; + ipfs = ipfs || i; + ens = ens || e; + + // Command + let command: string | undefined; + try { + const params = parameters; + [command] = fixParameters( + { + options: params.options, + array: params.array, + }, + { + h, + help, + } + ); + // eslint-disable-next-line no-empty + } catch (e) {} + + // Validate Params + const paramsValid = validatePluginParams( + print, + command, + publishDir, + (dir) => (publishDir = dir), + codegenDir, + (dir) => (codegenDir = dir), + ipfs, + ens + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultPluginManifest + ); + publishDir = publishDir && filesystem.resolve(publishDir); + codegenDir = codegenDir && filesystem.resolve(codegenDir); + + // Plugin project + const project = new PluginProject({ + rootCacheDir: path.dirname(manifestFile), + pluginManifestPath: manifestFile, + }); + await project.validate(); + const manifest = await project.getManifest(); + + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + + if (result) { + process.exitCode = 0; + } else { + process.exitCode = 1; + } + + // Output the built schema & manifest + const schemas = await schemaComposer.getComposedSchemas( + ComposerFilter.Schema + ); + const publishSchemaPath = path.join(publishDir, "schema.graphql"); + const publishManifestPath = path.join(publishDir, "web3api.plugin.json"); + + if (!fs.existsSync(publishDir)) { + fs.mkdirSync(publishDir); + } + + writeFileSync(publishSchemaPath, schemas.combined.schema); + await outputManifest(manifest, publishManifestPath); + }, + }; + + function validatePluginParams( + print: GluegunPrint, + command: unknown, + publishDir: unknown, + setPublishDir: (dir: string) => void, + codegenDir: unknown, + setCodegenDir: (dir: string) => void, + ipfs: unknown, + ens: unknown + ): boolean { + if (!command) { + print.error(intlMsg.commands_plugin_error_noCommand()); + return false; + } + + if (!command || typeof command !== "string") { + print.error(intlMsg.commands_plugin_error_noCommand()); + return false; + } else if (commands.indexOf(command) === -1) { + print.error(intlMsg.commands_plugin_error_unknownCommand({ command })); + return false; + } + + if (publishDir === true) { + const publishDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--publish-dir", + argument: `<${pathStr}>`, + } + ); + print.error(publishDirMessage); + return false; + } else if (!publishDir) { + setPublishDir(defaultPublishDir); + } + + if (codegenDir === true) { + const codegenDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--codegen-dir", + argument: `<${pathStr}>`, + } + ); + print.error(codegenDirMessage); + return false; + } else if (!codegenDir) { + setCodegenDir(defaultCodegenDir); + } + + if (ipfs === true) { + const ipfsMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--ipfs", + argument: `[<${nodeStr}>]`, + } + ); + print.error(ipfsMissingMessage); + return false; + } + + if (ens === true) { + const ensAddressMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--ens", + argument: `[<${addrStr}>]`, + } + ); + print.error(ensAddressMissingMessage); + return false; + } + + return true; + } + \ No newline at end of file diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts new file mode 100644 index 0000000000..2a5022b06d --- /dev/null +++ b/packages/cli/src/commands/query.ts @@ -0,0 +1,236 @@ +// TODO query refactor +import { + getTestEnvClientConfig, + importTypescriptModule, + validateClientConfig, + fixParameters, + intlMsg, + } from "../lib"; + + import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; + import chalk from "chalk"; + import { GluegunToolbox } from "gluegun"; + import gql from "graphql-tag"; + import path from "path"; + import yaml from "js-yaml"; + + const optionsString = intlMsg.commands_build_options_options(); + const scriptStr = intlMsg.commands_create_options_recipeScript(); + const configPathStr = intlMsg.commands_query_options_configPath(); + + const HELP = ` + ${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} + + ${optionsString[0].toUpperCase() + optionsString.slice(1)}: + -t, --test-ens ${intlMsg.commands_build_options_t()} + -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} + `; + + export default { + alias: ["q"], + description: intlMsg.commands_query_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters, print } = toolbox; + + // Options + let { testEns, clientConfig } = parameters.options; + const { t, c } = parameters.options; + + testEns = testEns || t; + clientConfig = clientConfig || c; + + let recipePath; + try { + const params = toolbox.parameters; + [recipePath] = fixParameters( + { + options: params.options, + array: params.array, + }, + { + t, + testEns, + } + ); + } catch (e) { + recipePath = null; + print.error(e.message); + process.exitCode = 1; + return; + } + + if (!recipePath) { + const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ + script: `<${scriptStr}>`, + }); + print.error(scriptMissingMessage); + print.info(HELP); + return; + } + + if (clientConfig === true) { + const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( + { + option: "--client-config", + argument: `<${configPathStr}>`, + } + ); + print.error(confgisMissingPathMessage); + print.info(HELP); + return; + } + + let finalClientConfig: Partial; + + try { + finalClientConfig = await getTestEnvClientConfig(); + } catch (e) { + print.error(intlMsg.commands_query_error_noTestEnvFound()); + process.exitCode = 1; + return; + } + + if (clientConfig) { + let configModule; + if (clientConfig.endsWith(".js")) { + configModule = await import(filesystem.resolve(clientConfig)); + } else if (clientConfig.endsWith(".ts")) { + configModule = await importTypescriptModule( + filesystem.resolve(clientConfig) + ); + } else { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( + { module: clientConfig } + ); + print.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + if (!configModule || !configModule.getClientConfig) { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( + { module: configModule } + ); + print.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + finalClientConfig = configModule.getClientConfig(finalClientConfig); + + try { + validateClientConfig(finalClientConfig); + } catch (e) { + print.error(e.message); + process.exitCode = 1; + return; + } + } + + const client = new Web3ApiClient(finalClientConfig); + + function getParser(path: string) { + return path.endsWith(".yaml") || path.endsWith(".yml") + ? yaml.load + : JSON.parse; + } + + const recipe = getParser(recipePath)(filesystem.read(recipePath) as string); + const dir = path.dirname(recipePath); + let uri = ""; + + let constants: Record = {}; + for (const task of recipe) { + if (task.api) { + uri = task.api; + } + + if (task.constants) { + constants = getParser(task.constants)( + filesystem.read(path.join(dir, task.constants)) as string + ); + } + + if (task.query) { + const query = filesystem.read(path.join(dir, task.query)); + + if (!query) { + const readFailMessage = intlMsg.commands_query_error_readFail({ + query: query ?? "undefined", + }); + throw Error(readFailMessage); + } + + let variables: Record = {}; + + if (task.variables) { + const resolveObjectConstants = ( + constants: Record + ): Record => { + const output: Record = {}; + + Object.keys(constants).forEach((key: string) => { + output[key] = resolveConstant(constants[key]); + }); + + return output; + }; + + const resolveArrayConstants = (arr: unknown[]): unknown[] => { + return arr.map((item) => { + return resolveConstant(item); + }); + }; + + const resolveConstant = (constant: unknown): unknown => { + if (typeof constant === "string" && constant[0] === "$") { + return constants[constant.replace("$", "")]; + } else if (Array.isArray(constant)) { + return resolveArrayConstants(constant); + } else if (typeof constant === "object") { + return resolveObjectConstants( + constant as Record + ); + } else { + return constant; + } + }; + + variables = resolveObjectConstants(task.variables); + } + + if (!uri) { + throw Error(intlMsg.commands_query_error_noApi()); + } + + print.warning("-----------------------------------"); + print.fancy(query); + print.fancy(JSON.stringify(variables, null, 2)); + print.warning("-----------------------------------"); + + const { data, errors } = await client.query({ + uri, + query: gql(query), + variables, + }); + + if (data && data !== {}) { + print.success("-----------------------------------"); + print.fancy(JSON.stringify(data, null, 2)); + print.success("-----------------------------------"); + } + + if (errors) { + for (const error of errors) { + print.error("-----------------------------------"); + print.fancy(error.message); + print.fancy(error.stack || ""); + print.error("-----------------------------------"); + } + process.exitCode = 1; + } + } + } + }, + }; + \ No newline at end of file From 58edd2bb3fb99b72f2868cbe4b1e9f1347461487 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Tue, 22 Mar 2022 02:12:53 -0700 Subject: [PATCH 06/23] update query refactor with commander --- packages/cli/src/commands/app.ts | 24 +- packages/cli/src/commands/build.ts | 635 ++++++++++++------------- packages/cli/src/commands/codegen.ts | 198 -------- packages/cli/src/commands/create.ts | 180 -------- packages/cli/src/commands/index.ts | 5 +- packages/cli/src/commands/query.ts | 668 ++++++++++++++++++--------- packages/cli/src/lib/system/path.ts | 14 +- 7 files changed, 748 insertions(+), 976 deletions(-) delete mode 100644 packages/cli/src/commands/codegen.ts delete mode 100644 packages/cli/src/commands/create.ts diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 1b7759023c..4727f12711 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -1,12 +1,11 @@ import { Command, Program } from "./types"; -import fs from 'fs'; + import { AppProject, CodeGenerator, SchemaComposer, intlMsg, - //fixParameters, - //resolvePathIfExists, + resolvePathIfExistsRefactor, defaultAppManifest, getSimpleClient, getTestEnvProviders, @@ -21,8 +20,8 @@ export const app: Command = { setup: (program: Program) => { const appCommand = program - .alias("a") .command("app") + .alias("a") .description(intlMsg.commands_app_description()) appCommand @@ -48,23 +47,12 @@ export const app: Command = { async function run(options: any) { - let { codegenDir, ipfs, ens } = options; + let { manifestFile, codegenDir, ipfs, ens } = options; // Resolve manifest - const manifestPaths = options.manifestFile ? [options.manifestFile] : defaultAppManifest; - - function resolvePathIfExists( - searchPaths: string[] - ): string | undefined { - for (let i = 0; i < manifestPaths.length; i++) { - if (fs.existsSync(searchPaths[i])) { - return searchPaths[i]; - } - } - return undefined; - } + const manifestPaths = manifestFile ? [manifestFile] : defaultAppManifest; - let manifestFile = resolvePathIfExists(manifestPaths) + manifestFile = resolvePathIfExistsRefactor(manifestPaths) if (!manifestFile) { console.error( diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index bbd70ba958..6f73167a5b 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -1,363 +1,296 @@ // TODO build refactor -/* eslint-disable prefer-const */ +import { Command, Program } from "./types"; import { - Compiler, - Web3ApiProject, - SchemaComposer, - Watcher, - WatchEvent, - watchEventName, - publishToIPFS, + // Compiler, + // Web3ApiProject, + // SchemaComposer, + // Watcher, + // WatchEvent, + // watchEventName, + // publishToIPFS, intlMsg, - getDockerFileLock, + // getDockerFileLock, defaultWeb3ApiManifest, - resolvePathIfExists, - getTestEnvProviders, + resolvePathIfExistsRefactor, + // getTestEnvProviders, isDockerInstalled, - } from "../lib"; - - import chalk from "chalk"; - import axios from "axios"; - import path from "path"; - import readline from "readline"; - import { GluegunToolbox, GluegunPrint } from "gluegun"; - - const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); - const defaultOutputDirectory = "./build"; - const optionsStr = intlMsg.commands_build_options_options(); - const nodeStr = intlMsg.commands_build_options_i_node(); - const pathStr = intlMsg.commands_build_options_o_path(); - const addrStr = intlMsg.commands_build_options_e_address(); - const domStr = intlMsg.commands_build_options_e_domain(); - - const HELP = ` - ${chalk.bold("w3 build")} [${optionsStr}] - - ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: - -h, --help ${intlMsg.commands_build_options_h()} - -m, --manifest-file <${pathStr}> ${intlMsg.commands_build_options_m({ - default: defaultManifestStr, - })} - -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_build_options_i()} - -o, --output-dir <${pathStr}> ${intlMsg.commands_build_options_o()} - -e, --test-ens <[${addrStr},]${domStr}> ${intlMsg.commands_build_options_e()} - -w, --watch ${intlMsg.commands_build_options_w()} - -v, --verbose ${intlMsg.commands_build_options_v()} - `; - - export default { - alias: ["b"], - description: intlMsg.commands_build_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters, print } = toolbox; - - // Options - const { h, m, i, o, w, e, v } = parameters.options; - let { - help, - manifestFile, - ipfs, - outputDir, - watch, - testEns, - verbose, - } = parameters.options; - - help = help || h; - manifestFile = manifestFile || m; - ipfs = ipfs || i; - outputDir = outputDir || o; - watch = watch || w; - testEns = testEns || e; - verbose = verbose || v; - - // Validate Params - const paramsValid = validateBuildParams( - print, +} from "../lib"; +//import chalk from "chalk"; +// import axios from "axios"; +// import path from "path"; +// import readline from "readline"; + +const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); +// const defaultOutputDirectory = "./build"; +//const optionsStr = intlMsg.commands_build_options_options(); +const nodeStr = intlMsg.commands_build_options_i_node(); +const pathStr = intlMsg.commands_build_options_o_path(); +const addrStr = intlMsg.commands_build_options_e_address(); +const domStr = intlMsg.commands_build_options_e_domain(); + +// const HELP = ` +// ${chalk.bold("w3 build")} [${optionsStr}] + +// ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: +// -h, --help ${intlMsg.commands_build_options_h()} +// -m, --manifest-file <${pathStr}> ${intlMsg.commands_build_options_m({ +// default: defaultManifestStr, +// })} +// -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_build_options_i()} +// -o, --output-dir <${pathStr}> ${intlMsg.commands_build_options_o()} +// -e, --test-ens <[${addrStr},]${domStr}> ${intlMsg.commands_build_options_e()} +// -w, --watch ${intlMsg.commands_build_options_w()} +// -v, --verbose ${intlMsg.commands_build_options_v()} +// `; + + +export const build: Command = { + setup: (program: Program) => { + + program + .command("build") + .alias("b") + .description(intlMsg.commands_build_description()) + .option(`-m, --manifest-file <${pathStr}>`, intlMsg.commands_build_options_m( + { + default: defaultManifestStr, + } + )) + .option(`-i, --ipfs [<${nodeStr}>] `, `${intlMsg.commands_build_options_i()}`) + .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_build_options_o()}`) + .option(`-e, --test-ens <[${addrStr},]${domStr}>`, `${intlMsg.commands_build_options_e()}`) + .option(`-w, --watch`, `${intlMsg.commands_build_options_w()}`) + .option(`-v, --verbose`, `${intlMsg.commands_build_options_v()}`) + .action(async (options) => { + await run(options); + }); + } +} + + +async function run(options: any) { + let { manifestFile, - outputDir, - testEns, - ipfs - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } + // ipfs, + // outputDir, + // watch, + // testEns, + // verbose, + } = options; + + // Ensure docker is installed + if (!isDockerInstalled()) { + console.log(intlMsg.lib_docker_noInstall()); return; - } - - // Ensure docker is installed - if (!isDockerInstalled()) { - print.error(intlMsg.lib_docker_noInstall()); - return; - } - - // Resolve manifest & output directory - const manifestPaths = manifestFile + } + + // Resolve manifest & output directory + const manifestPaths = manifestFile ? [manifestFile as string] : defaultWeb3ApiManifest; - manifestFile = resolvePathIfExists(filesystem, manifestPaths); - - if (!manifestFile) { - print.error( - intlMsg.commands_build_error_manifestNotFound({ - paths: manifestPaths.join(", "), - }) + manifestFile = resolvePathIfExistsRefactor(manifestPaths); + + if (!manifestFile) { + console.log( + intlMsg.commands_build_error_manifestNotFound({ + paths: manifestPaths.join(", "), + }) ); return; - } - - outputDir = - (outputDir && filesystem.resolve(outputDir)) || - filesystem.path(defaultOutputDirectory); - - // Gather providers - let ipfsProvider: string | undefined; - let ethProvider: string | undefined; - let ensAddress: string | undefined; - let ensDomain: string | undefined; - - if (typeof ipfs === "string") { - // Custom IPFS provider - ipfsProvider = ipfs; - } else if (ipfs) { - // Try to get the dev server's IPFS & ETH providers - const testEnvProviders = await getTestEnvProviders(); - ipfsProvider = testEnvProviders.ipfsProvider; - ethProvider = testEnvProviders.ethProvider; - } - - if (typeof testEns == "string") { - // Fetch the ENS domain, and optionally the address - if (testEns.indexOf(",") > -1) { - const [addr, dom] = testEns.split(","); - ensAddress = addr; - ensDomain = dom; - } else { - ensDomain = testEns; - } - - // If not address was provided, fetch it from the server - // or deploy a new instance - if (!ensAddress) { - const getEns = await axios.get("http://localhost:4040/ens"); - - if (!getEns.data.ensAddress) { - const deployEns = await axios.get("http://localhost:4040/deploy-ens"); - ensAddress = deployEns.data.ensAddress; - } else { - ensAddress = getEns.data.ensAddress; - } - } - } - - // Aquire a system-wide lock file for the docker service - const dockerLock = getDockerFileLock(); - - const project = new Web3ApiProject({ - rootCacheDir: path.dirname(manifestFile), - web3apiManifestPath: manifestFile, - quiet: verbose ? false : true, - }); - await project.validate(); - - const schemaComposer = new SchemaComposer({ - project, - ensAddress, - ethProvider, - ipfsProvider, - }); - - const compiler = new Compiler({ - project, - outputDir, - schemaComposer, - }); - - const execute = async (): Promise => { - compiler.reset(); - const result = await compiler.compile(); - - if (!result) { - return result; - } - - const uris: string[][] = []; - - // publish to IPFS - if (ipfsProvider) { - const cid = await publishToIPFS(outputDir, ipfsProvider); - - print.success(`IPFS { ${cid} }`); - uris.push(["Web3API IPFS", `ipfs://${cid}`]); - - if (testEns) { - if (!ensAddress) { - uris.push([ - intlMsg.commands_build_ensRegistry(), - `${ethProvider}/${ensAddress}`, - ]); - } - - // ask the dev server to publish the CID to ENS - const { data } = await axios.get( - "http://localhost:4040/register-ens", - { - params: { - domain: ensDomain, - cid, - }, - } - ); - - if (data.success) { - uris.push(["Web3API ENS", `${testEns} => ${cid}`]); - } else { - print.error( - `${intlMsg.commands_build_error_resolution()} { ${testEns} => ${cid} }\n` + - `${intlMsg.commands_build_ethProvider()}: ${ethProvider}\n` + - `${intlMsg.commands_build_address()}: ${ensAddress}` - ); - } - - return data.success; - } - - if (uris.length) { - print.success(`${intlMsg.commands_build_uriViewers()}:`); - print.table(uris); - return true; - } else { - return false; - } - } - - return true; - }; - - if (!watch) { - await dockerLock.request(); - const result = await execute(); - await dockerLock.release(); - - if (!result) { - process.exitCode = 1; - return; - } - } else { - // Execute - await dockerLock.request(); - await execute(); - await dockerLock.release(); - - const keyPressListener = () => { - // Watch for escape key presses - print.info( - `${intlMsg.commands_build_keypressListener_watching()}: ${project.getManifestDir()}` - ); - print.info(intlMsg.commands_build_keypressListener_exit()); - readline.emitKeypressEvents(process.stdin); - process.stdin.on("keypress", async (str, key) => { - if ( - key.name == "escape" || - key.name == "q" || - (key.name == "c" && key.ctrl) - ) { - await watcher.stop(); - await dockerLock.release(); - process.kill(process.pid, "SIGINT"); - } - }); - - if (process.stdin.setRawMode) { - process.stdin.setRawMode(true); - } - - process.stdin.resume(); - }; - - keyPressListener(); - - // Watch the directory - const watcher = new Watcher(); - - watcher.start(project.getManifestDir(), { - ignored: [outputDir + "/**", project.getManifestDir() + "/**/w3/**"], - ignoreInitial: true, - execute: async (events: WatchEvent[]) => { - // Log all of the events encountered - for (const event of events) { - print.info(`${watchEventName(event.type)}: ${event.path}`); - } - - // Execute the build - await dockerLock.request(); - await execute(); - await dockerLock.release(); - - // Process key presses - keyPressListener(); - }, - }); - } - - process.exitCode = 0; - }, - }; - - function validateBuildParams( - print: GluegunPrint, - manifestFile: unknown, - outputDir: unknown, - testEns: unknown, - ipfs: unknown - ): boolean { - if (manifestFile === true) { - const manifestPathMissingMessage = intlMsg.commands_build_error_manifestPathMissing( - { - option: "--manifest-file", - argument: `<${pathStr}>`, - } - ); - print.error(manifestPathMissingMessage); - return false; } - - if (outputDir === true) { - const outputDirMissingPathMessage = intlMsg.commands_build_error_outputDirMissingPath( - { - option: "--output-dir", - argument: `<${pathStr}>`, - } - ); - print.error(outputDirMissingPathMessage); - return false; - } - - if (testEns === true) { - const testEnsAddressMissingMessage = intlMsg.commands_build_error_testEnsAddressMissing( - { - option: "--test-ens", - argument: `<[${addrStr},]${domStr}>`, - } - ); - print.error(testEnsAddressMissingMessage); - return false; - } - - if (testEns && !ipfs) { - const testEnsNodeMissingMessage = intlMsg.commands_build_error_testEnsNodeMissing( - { - option: "--test-ens", - required: `--ipfs [<${nodeStr}>]`, - } - ); - print.error(testEnsNodeMissingMessage); - return false; - } - - return true; - } - \ No newline at end of file + + // outputDir = + // (outputDir && filesystem.resolve(outputDir)) || + // filesystem.path(defaultOutputDirectory); + + // // Gather providers + // let ipfsProvider: string | undefined; + // let ethProvider: string | undefined; + // let ensAddress: string | undefined; + // let ensDomain: string | undefined; + + // if (typeof ipfs === "string") { + // // Custom IPFS provider + // ipfsProvider = ipfs; + // } else if (ipfs) { + // // Try to get the dev server's IPFS & ETH providers + // const testEnvProviders = await getTestEnvProviders(); + // ipfsProvider = testEnvProviders.ipfsProvider; + // ethProvider = testEnvProviders.ethProvider; + // } + + // if (typeof testEns == "string") { + // // Fetch the ENS domain, and optionally the address + // if (testEns.indexOf(",") > -1) { + // const [addr, dom] = testEns.split(","); + // ensAddress = addr; + // ensDomain = dom; + // } else { + // ensDomain = testEns; + // } + + // // If not address was provided, fetch it from the server + // // or deploy a new instance + // if (!ensAddress) { + // const getEns = await axios.get("http://localhost:4040/ens"); + + // if (!getEns.data.ensAddress) { + // const deployEns = await axios.get("http://localhost:4040/deploy-ens"); + // ensAddress = deployEns.data.ensAddress; + // } else { + // ensAddress = getEns.data.ensAddress; + // } + // } + // } + + // // Aquire a system-wide lock file for the docker service + // const dockerLock = getDockerFileLock(); + + // const project = new Web3ApiProject({ + // rootCacheDir: path.dirname(manifestFile), + // web3apiManifestPath: manifestFile, + // quiet: verbose ? false : true, + // }); + // await project.validate(); + + // const schemaComposer = new SchemaComposer({ + // project, + // ensAddress, + // ethProvider, + // ipfsProvider, + // }); + + // const compiler = new Compiler({ + // project, + // outputDir, + // schemaComposer, + // }); + + // const execute = async (): Promise => { + // compiler.reset(); + // const result = await compiler.compile(); + + // if (!result) { + // return result; + // } + + // const uris: string[][] = []; + + // // publish to IPFS + // if (ipfsProvider) { + // const cid = await publishToIPFS(outputDir, ipfsProvider); + + // console.log(`IPFS { ${cid} }`); + // uris.push(["Web3API IPFS", `ipfs://${cid}`]); + + // if (testEns) { + // if (!ensAddress) { + // uris.push([ + // intlMsg.commands_build_ensRegistry(), + // `${ethProvider}/${ensAddress}`, + // ]); + // } + + // // ask the dev server to publish the CID to ENS + // const { data } = await axios.get( + // "http://localhost:4040/register-ens", + // { + // params: { + // domain: ensDomain, + // cid, + // }, + // } + // ); + + // if (data.success) { + // uris.push(["Web3API ENS", `${testEns} => ${cid}`]); + // } else { + // console.log( + // `${intlMsg.commands_build_error_resolution()} { ${testEns} => ${cid} }\n` + + // `${intlMsg.commands_build_ethProvider()}: ${ethProvider}\n` + + // `${intlMsg.commands_build_address()}: ${ensAddress}` + // ); + // } + + // return data.success; + // } + + // if (uris.length) { + // console.log(`${intlMsg.commands_build_uriViewers()}:`); + // console.log(uris); + // return true; + // } else { + // return false; + // } + // } + + // return true; + // }; + + // if (!watch) { + // await dockerLock.request(); + // const result = await execute(); + // await dockerLock.release(); + + // if (!result) { + // process.exitCode = 1; + // return; + // } + // } else { + // // Execute + // await dockerLock.request(); + // await execute(); + // await dockerLock.release(); + + // const keyPressListener = () => { + // // Watch for escape key presses + // console.log( + // `${intlMsg.commands_build_keypressListener_watching()}: ${project.getManifestDir()}` + // ); + // console.log(intlMsg.commands_build_keypressListener_exit()); + // readline.emitKeypressEvents(process.stdin); + // process.stdin.on("keypress", async (str, key) => { + // if ( + // key.name == "escape" || + // key.name == "q" || + // (key.name == "c" && key.ctrl) + // ) { + // await watcher.stop(); + // await dockerLock.release(); + // process.kill(process.pid, "SIGINT"); + // } + // }); + + // if (process.stdin.setRawMode) { + // process.stdin.setRawMode(true); + // } + + // process.stdin.resume(); + // }; + + // keyPressListener(); + + // // Watch the directory + // const watcher = new Watcher(); + + // watcher.start(project.getManifestDir(), { + // ignored: [outputDir + "/**", project.getManifestDir() + "/**/w3/**"], + // ignoreInitial: true, + // execute: async (events: WatchEvent[]) => { + // // Log all of the events encountered + // for (const event of events) { + // console.log(`${watchEventName(event.type)}: ${event.path}`); + // } + + // // Execute the build + // await dockerLock.request(); + // await execute(); + // await dockerLock.release(); + + // // Process key presses + // keyPressListener(); + // }, + // }); + // } + // process.exitCode = 0; +} \ No newline at end of file diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts deleted file mode 100644 index 28d564b948..0000000000 --- a/packages/cli/src/commands/codegen.ts +++ /dev/null @@ -1,198 +0,0 @@ -// TODO codegen refactor -/* eslint-disable prefer-const */ -import { - CodeGenerator, - Compiler, - Web3ApiProject, - SchemaComposer, - intlMsg, - defaultWeb3ApiManifest, - getTestEnvProviders, - resolvePathIfExists, - } from "../lib"; - - import chalk from "chalk"; - import path from "path"; - import { GluegunToolbox, GluegunPrint } from "gluegun"; - - const defaultCodegenDir = "./w3"; - const optionsStr = intlMsg.commands_options_options(); - const nodeStr = intlMsg.commands_codegen_options_i_node(); - const pathStr = intlMsg.commands_codegen_options_o_path(); - const addrStr = intlMsg.commands_codegen_options_e_address(); - const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); - - const HELP = ` - ${chalk.bold("w3 codegen")} [${optionsStr}] - - ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: - -h, --help ${intlMsg.commands_codegen_options_h()} - -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( - { - default: defaultManifestStr, - } - )} - -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( - { - default: defaultCodegenDir, - } - )} - -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} - -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} - -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} - `; - - export default { - alias: ["g"], - description: intlMsg.commands_codegen_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters, print } = toolbox; - - // Options - const { h, m, c, s, i, e } = parameters.options; - let { - help, - manifestFile, - codegenDir, - script, - ipfs, - ens, - } = parameters.options; - - help = help || h; - manifestFile = manifestFile || m; - codegenDir = codegenDir || c; - script = script || s; - ipfs = ipfs || i; - ens = ens || e; - - // Validate Params - const paramsValid = validateCodegenParams( - print, - codegenDir, - (dir: string) => (codegenDir = dir), - script, - ipfs, - ens - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); - const ensAddress: string | undefined = ens; - - // Resolve manifest file - manifestFile = resolvePathIfExists( - filesystem, - manifestFile ? [manifestFile] : defaultWeb3ApiManifest - ); - codegenDir = codegenDir && filesystem.resolve(codegenDir); - script = script && filesystem.resolve(script); - - // Web3Api Project - const project = new Web3ApiProject({ - rootCacheDir: path.dirname(manifestFile), - web3apiManifestPath: manifestFile, - }); - await project.validate(); - - const schemaComposer = new SchemaComposer({ - project, - ipfsProvider, - ethProvider, - ensAddress, - }); - - let result = false; - - if (script) { - const codeGenerator = new CodeGenerator({ - project, - schemaComposer, - customScript: script, - outputDir: codegenDir, - }); - - result = await codeGenerator.generate(); - } else { - const compiler = new Compiler({ - project, - outputDir: filesystem.path("build"), - schemaComposer, - }); - - result = await compiler.codegen(); - } - - if (result) { - print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); - process.exitCode = 0; - } else { - process.exitCode = 1; - } - }, - }; - - function validateCodegenParams( - print: GluegunPrint, - codegenDir: unknown, - setCodegenDir: (dir: string) => void, - script: unknown, - ipfs: unknown, - ens: unknown - ): boolean { - if (codegenDir === true) { - const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--codegen-dir", - argument: `<${pathStr}>`, - } - ); - print.error(codegenDirMessage); - return false; - } else if (!codegenDir) { - setCodegenDir(defaultCodegenDir); - } - - if (script === true) { - const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--script", - argument: `<${pathStr}>`, - } - ); - print.error(customScriptMissingPathMessage); - return false; - } - - if (ipfs === true) { - const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--ipfs", - argument: `[<${nodeStr}>]`, - } - ); - print.error(ipfsMissingMessage); - return false; - } - - if (ens === true) { - const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--ens", - argument: `[<${addrStr}>]`, - } - ); - print.error(ensAddressMissingMessage); - return false; - } - - return true; - } - \ No newline at end of file diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts deleted file mode 100644 index 89eb71ffbe..0000000000 --- a/packages/cli/src/commands/create.ts +++ /dev/null @@ -1,180 +0,0 @@ -// TODO create refactor -import { generateProjectTemplate, fixParameters, intlMsg } from "../lib"; - -import chalk from "chalk"; -import { GluegunToolbox, GluegunPrint } from "gluegun"; - -const cmdStr = intlMsg.commands_create_options_command(); -const nameStr = intlMsg.commands_create_options_projectName(); -const optionsStr = intlMsg.commands_options_options(); -const langStr = intlMsg.commands_create_options_lang(); -const langsStr = intlMsg.commands_create_options_langs(); -const createProjStr = intlMsg.commands_create_options_createProject(); -const createAppStr = intlMsg.commands_create_options_createApp(); -const createPluginStr = intlMsg.commands_create_options_createPlugin(); -const pathStr = intlMsg.commands_create_options_o_path(); - -export const supportedLangs: { [key: string]: string[] } = { - api: ["assemblyscript", "interface"], - app: ["typescript-node", "typescript-react"], - plugin: ["typescript"], -}; - -const HELP = ` -${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] - -${intlMsg.commands_create_options_commands()}: - ${chalk.bold("api")} <${langStr}> ${createProjStr} - ${langsStr}: ${supportedLangs.api.join(", ")} - ${chalk.bold("app")} <${langStr}> ${createAppStr} - ${langsStr}: ${supportedLangs.app.join(", ")} - ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} - ${langsStr}: ${supportedLangs.plugin.join(", ")} - -Options: - -h, --help ${intlMsg.commands_create_options_h()} - -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} -`; - -export default { - alias: ["c"], - description: intlMsg.commands_create_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { parameters, print, prompt, filesystem } = toolbox; - - // Options - let { help, outputDir } = parameters.options; - const { h, o } = parameters.options; - - help = help || h; - outputDir = outputDir || o; - - let type = ""; - let lang = ""; - let name = ""; - try { - const params = parameters; - [type, lang, name] = fixParameters( - { - options: params.options, - array: params.array, - }, - { - h, - help, - } - ); - // eslint-disable-next-line no-empty - } catch (e) {} - - // Validate Params - const paramsValid = validateCreateParams( - print, - type, - lang, - name, - outputDir - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const projectDir = outputDir ? `${outputDir}/${name}` : name; - - // check if project already exists - if (!filesystem.exists(projectDir)) { - print.newline(); - print.info(intlMsg.commands_create_settingUp()); - } else { - const directoryExistsMessage = intlMsg.commands_create_directoryExists({ - dir: projectDir, - }); - print.info(directoryExistsMessage); - const overwrite = await prompt.confirm( - intlMsg.commands_create_overwritePrompt() - ); - if (overwrite) { - const overwritingMessage = intlMsg.commands_create_overwriting({ - dir: projectDir, - }); - print.info(overwritingMessage); - filesystem.remove(projectDir); - } else { - process.exit(8); - } - } - - generateProjectTemplate(type, lang, projectDir, filesystem) - .then(() => { - print.newline(); - let readyMessage; - if (type === "api") { - readyMessage = intlMsg.commands_create_readyProtocol(); - } else if (type === "app") { - readyMessage = intlMsg.commands_create_readyApp(); - } else if (type === "plugin") { - readyMessage = intlMsg.commands_create_readyPlugin(); - } - print.info(`🔥 ${readyMessage} 🔥`); - }) - .catch((err) => { - const commandFailError = intlMsg.commands_create_error_commandFail({ - error: err.command, - }); - print.error(commandFailError); - }); - }, -}; - -function validateCreateParams( - print: GluegunPrint, - type: unknown, - lang: unknown, - name: unknown, - outputDir: unknown -): boolean { - if (!type || typeof type !== "string") { - print.error(intlMsg.commands_create_error_noCommand()); - return false; - } - - if (!lang || typeof lang !== "string") { - print.error(intlMsg.commands_create_error_noLang()); - return false; - } - - if (!name || typeof name !== "string") { - print.error(intlMsg.commands_create_error_noName()); - return false; - } - - if (!supportedLangs[type]) { - const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); - print.error(`${unrecognizedCommand} "${type}"`); - return false; - } - - if (supportedLangs[type].indexOf(lang) === -1) { - const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); - print.error(`${unrecognizedLanguage} "${lang}"`); - return false; - } - - if (outputDir === true) { - const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( - { - option: "--output-dir", - argument: `<${pathStr}>`, - } - ); - print.error(outputDirMissingPathMessage); - return false; - } - - return true; -} diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index def9565e68..29ee9c6b84 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -1,2 +1,3 @@ -export * from "./app" -export * from "./test-env"; +export * from "./app"; +export * from "./query"; +export * from "./test-env"; \ No newline at end of file diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 2a5022b06d..1f560f8064 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,236 +1,452 @@ -// TODO query refactor +import { Command, Program } from "./types"; import { - getTestEnvClientConfig, - importTypescriptModule, - validateClientConfig, - fixParameters, - intlMsg, - } from "../lib"; - - import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; - import chalk from "chalk"; - import { GluegunToolbox } from "gluegun"; - import gql from "graphql-tag"; - import path from "path"; - import yaml from "js-yaml"; - - const optionsString = intlMsg.commands_build_options_options(); - const scriptStr = intlMsg.commands_create_options_recipeScript(); - const configPathStr = intlMsg.commands_query_options_configPath(); - - const HELP = ` - ${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} - - ${optionsString[0].toUpperCase() + optionsString.slice(1)}: - -t, --test-ens ${intlMsg.commands_build_options_t()} - -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} - `; - - export default { - alias: ["q"], - description: intlMsg.commands_query_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters, print } = toolbox; - - // Options - let { testEns, clientConfig } = parameters.options; - const { t, c } = parameters.options; - - testEns = testEns || t; - clientConfig = clientConfig || c; - - let recipePath; - try { - const params = toolbox.parameters; - [recipePath] = fixParameters( - { - options: params.options, - array: params.array, - }, - { - t, - testEns, - } - ); - } catch (e) { - recipePath = null; - print.error(e.message); - process.exitCode = 1; - return; + getTestEnvClientConfig, + importTypescriptModule, + validateClientConfig, + fixParameters, + intlMsg, +} from "../lib"; + +import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; +import chalk from "chalk"; +import * as jetpack from "fs-jetpack"; + +import gql from "graphql-tag"; +import path from "path"; +import yaml from "js-yaml"; + +const optionsString = intlMsg.commands_build_options_options(); +const scriptStr = intlMsg.commands_create_options_recipeScript(); +const configPathStr = intlMsg.commands_query_options_configPath(); + +const HELP = ` +${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} + +${optionsString[0].toUpperCase() + optionsString.slice(1)}: + -t, --test-ens ${intlMsg.commands_build_options_t()} + -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} +`; + + +export const query: Command = { + setup: (program: Program) => { + program + .command("query") + .alias("q") + .description(intlMsg.commands_query_description()) + .option(`-t, --test-ens`, `${intlMsg.commands_build_options_t()}`) + .option(`-c, --client-config <${configPathStr}> `, `${intlMsg.commands_query_options_config()}`) + .action(async (options) => { + await run(options); + }); + } +} + + +async function run(options: any) { + let { testEns, clientConfig } = options; + + + + console.log(testEns) + console.log(clientConfig); + let recipePath; + try { + const params = options; + [recipePath] = fixParameters( + { + options: options, + array: params.array, + }, + { + testEns, + } + ); + } catch (e) { + recipePath = null; + console.error(e.message); + process.exitCode = 1; + return; + } + + if (!recipePath) { + const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ + script: `<${scriptStr}>`, + }); + console.error(scriptMissingMessage); + console.info(HELP); + return; + } + + if (clientConfig === true) { + const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( + { + option: "--client-config", + argument: `<${configPathStr}>`, } - - if (!recipePath) { - const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ - script: `<${scriptStr}>`, + ); + console.error(confgisMissingPathMessage); + console.info(HELP); + return; + } + + let finalClientConfig: Partial; + + try { + finalClientConfig = await getTestEnvClientConfig(); + } catch (e) { + console.error(intlMsg.commands_query_error_noTestEnvFound()); + process.exitCode = 1; + return; + } + + if (clientConfig) { + let configModule; + if (clientConfig.endsWith(".js")) { + configModule = await import(path.resolve(clientConfig)); + } else if (clientConfig.endsWith(".ts")) { + configModule = await importTypescriptModule( + path.resolve(clientConfig) + ); + } else { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( + { module: clientConfig } + ); + console.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + if (!configModule || !configModule.getClientConfig) { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( + { module: configModule } + ); + console.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + finalClientConfig = configModule.getClientConfig(finalClientConfig); + + try { + validateClientConfig(finalClientConfig); + } catch (e) { + console.error(e.message); + process.exitCode = 1; + return; + } + } + + const client = new Web3ApiClient(finalClientConfig); + + function getParser(path: string) { + return path.endsWith(".yaml") || path.endsWith(".yml") + ? yaml.load + : JSON.parse; + } + + const recipe = getParser(recipePath)(jetpack.read(recipePath) as string); + const dir = path.dirname(recipePath); + let uri = ""; + + let constants: Record = {}; + for (const task of recipe) { + if (task.api) { + uri = task.api; + } + + if (task.constants) { + constants = getParser(task.constants)( + jetpack.read(path.join(dir, task.constants)) as string + ); + } + + if (task.query) { + const query =jetpack.read(path.join(dir, task.query)); + + if (!query) { + const readFailMessage = intlMsg.commands_query_error_readFail({ + query: query ?? "undefined", }); - print.error(scriptMissingMessage); - print.info(HELP); - return; + throw Error(readFailMessage); } - - if (clientConfig === true) { - const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( - { - option: "--client-config", - argument: `<${configPathStr}>`, + + let variables: Record = {}; + + if (task.variables) { + const resolveObjectConstants = ( + constants: Record + ): Record => { + const output: Record = {}; + + Object.keys(constants).forEach((key: string) => { + output[key] = resolveConstant(constants[key]); + }); + + return output; + }; + + const resolveArrayConstants = (arr: unknown[]): unknown[] => { + return arr.map((item) => { + return resolveConstant(item); + }); + }; + + const resolveConstant = (constant: unknown): unknown => { + if (typeof constant === "string" && constant[0] === "$") { + return constants[constant.replace("$", "")]; + } else if (Array.isArray(constant)) { + return resolveArrayConstants(constant); + } else if (typeof constant === "object") { + return resolveObjectConstants( + constant as Record + ); + } else { + return constant; } - ); - print.error(confgisMissingPathMessage); - print.info(HELP); - return; + }; + + variables = resolveObjectConstants(task.variables); } - - let finalClientConfig: Partial; - - try { - finalClientConfig = await getTestEnvClientConfig(); - } catch (e) { - print.error(intlMsg.commands_query_error_noTestEnvFound()); - process.exitCode = 1; - return; - } - - if (clientConfig) { - let configModule; - if (clientConfig.endsWith(".js")) { - configModule = await import(filesystem.resolve(clientConfig)); - } else if (clientConfig.endsWith(".ts")) { - configModule = await importTypescriptModule( - filesystem.resolve(clientConfig) - ); - } else { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( - { module: clientConfig } - ); - print.error(configsModuleMissingExportMessage); - process.exitCode = 1; - return; - } - - if (!configModule || !configModule.getClientConfig) { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( - { module: configModule } - ); - print.error(configsModuleMissingExportMessage); - process.exitCode = 1; - return; - } - - finalClientConfig = configModule.getClientConfig(finalClientConfig); - - try { - validateClientConfig(finalClientConfig); - } catch (e) { - print.error(e.message); - process.exitCode = 1; - return; - } + + if (!uri) { + throw Error(intlMsg.commands_query_error_noApi()); } - - const client = new Web3ApiClient(finalClientConfig); - - function getParser(path: string) { - return path.endsWith(".yaml") || path.endsWith(".yml") - ? yaml.load - : JSON.parse; + + console.log("-----------------------------------"); + console.log(query); + console.log(JSON.stringify(variables, null, 2)); + console.log("-----------------------------------"); + + const { data, errors } = await client.query({ + uri, + query: gql(query), + variables, + }); + + if (data && data !== {}) { + console.log("-----------------------------------"); + console.log(JSON.stringify(data, null, 2)); + console.log("-----------------------------------"); } - - const recipe = getParser(recipePath)(filesystem.read(recipePath) as string); - const dir = path.dirname(recipePath); - let uri = ""; - - let constants: Record = {}; - for (const task of recipe) { - if (task.api) { - uri = task.api; - } - - if (task.constants) { - constants = getParser(task.constants)( - filesystem.read(path.join(dir, task.constants)) as string - ); - } - - if (task.query) { - const query = filesystem.read(path.join(dir, task.query)); - - if (!query) { - const readFailMessage = intlMsg.commands_query_error_readFail({ - query: query ?? "undefined", - }); - throw Error(readFailMessage); - } - - let variables: Record = {}; - - if (task.variables) { - const resolveObjectConstants = ( - constants: Record - ): Record => { - const output: Record = {}; - - Object.keys(constants).forEach((key: string) => { - output[key] = resolveConstant(constants[key]); - }); - - return output; - }; - - const resolveArrayConstants = (arr: unknown[]): unknown[] => { - return arr.map((item) => { - return resolveConstant(item); - }); - }; - - const resolveConstant = (constant: unknown): unknown => { - if (typeof constant === "string" && constant[0] === "$") { - return constants[constant.replace("$", "")]; - } else if (Array.isArray(constant)) { - return resolveArrayConstants(constant); - } else if (typeof constant === "object") { - return resolveObjectConstants( - constant as Record - ); - } else { - return constant; - } - }; - - variables = resolveObjectConstants(task.variables); - } - - if (!uri) { - throw Error(intlMsg.commands_query_error_noApi()); - } - - print.warning("-----------------------------------"); - print.fancy(query); - print.fancy(JSON.stringify(variables, null, 2)); - print.warning("-----------------------------------"); - - const { data, errors } = await client.query({ - uri, - query: gql(query), - variables, - }); - - if (data && data !== {}) { - print.success("-----------------------------------"); - print.fancy(JSON.stringify(data, null, 2)); - print.success("-----------------------------------"); - } - - if (errors) { - for (const error of errors) { - print.error("-----------------------------------"); - print.fancy(error.message); - print.fancy(error.stack || ""); - print.error("-----------------------------------"); - } - process.exitCode = 1; - } + + if (errors) { + for (const error of errors) { + console.log("-----------------------------------"); + console.log(error.message); + console.log(error.stack || ""); + console.log("-----------------------------------"); } + process.exitCode = 1; } - }, - }; - \ No newline at end of file + } + } +} + + // export default { + // alias: ["q"], + // description: intlMsg.commands_query_description(), + // run: async (toolbox: GluegunToolbox): Promise => { + // const { filesystem, parameters, print } = toolbox; + + // // Options + // let { testEns, clientConfig } = parameters.options; + // const { t, c } = parameters.options; + + // testEns = testEns || t; + // clientConfig = clientConfig || c; + + // let recipePath; + // try { + // const params = toolbox.parameters; + // [recipePath] = fixParameters( + // { + // options: params.options, + // array: params.array, + // }, + // { + // t, + // testEns, + // } + // ); + // } catch (e) { + // recipePath = null; + // print.error(e.message); + // process.exitCode = 1; + // return; + // } + + // if (!recipePath) { + // const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ + // script: `<${scriptStr}>`, + // }); + // print.error(scriptMissingMessage); + // print.info(HELP); + // return; + // } + + // if (clientConfig === true) { + // const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( + // { + // option: "--client-config", + // argument: `<${configPathStr}>`, + // } + // ); + // print.error(confgisMissingPathMessage); + // print.info(HELP); + // return; + // } + + // let finalClientConfig: Partial; + + // try { + // finalClientConfig = await getTestEnvClientConfig(); + // } catch (e) { + // print.error(intlMsg.commands_query_error_noTestEnvFound()); + // process.exitCode = 1; + // return; + // } + + // if (clientConfig) { + // let configModule; + // if (clientConfig.endsWith(".js")) { + // configModule = await import(filesystem.resolve(clientConfig)); + // } else if (clientConfig.endsWith(".ts")) { + // configModule = await importTypescriptModule( + // filesystem.resolve(clientConfig) + // ); + // } else { + // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( + // { module: clientConfig } + // ); + // print.error(configsModuleMissingExportMessage); + // process.exitCode = 1; + // return; + // } + + // if (!configModule || !configModule.getClientConfig) { + // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( + // { module: configModule } + // ); + // print.error(configsModuleMissingExportMessage); + // process.exitCode = 1; + // return; + // } + + // finalClientConfig = configModule.getClientConfig(finalClientConfig); + + // try { + // validateClientConfig(finalClientConfig); + // } catch (e) { + // print.error(e.message); + // process.exitCode = 1; + // return; + // } + // } + + // const client = new Web3ApiClient(finalClientConfig); + + // function getParser(path: string) { + // return path.endsWith(".yaml") || path.endsWith(".yml") + // ? yaml.load + // : JSON.parse; + // } + + // const recipe = getParser(recipePath)(filesystem.read(recipePath) as string); + // const dir = path.dirname(recipePath); + // let uri = ""; + + // let constants: Record = {}; + // for (const task of recipe) { + // if (task.api) { + // uri = task.api; + // } + + // if (task.constants) { + // constants = getParser(task.constants)( + // filesystem.read(path.join(dir, task.constants)) as string + // ); + // } + + // if (task.query) { + // const query = filesystem.read(path.join(dir, task.query)); + + // if (!query) { + // const readFailMessage = intlMsg.commands_query_error_readFail({ + // query: query ?? "undefined", + // }); + // throw Error(readFailMessage); + // } + + // let variables: Record = {}; + + // if (task.variables) { + // const resolveObjectConstants = ( + // constants: Record + // ): Record => { + // const output: Record = {}; + + // Object.keys(constants).forEach((key: string) => { + // output[key] = resolveConstant(constants[key]); + // }); + + // return output; + // }; + + // const resolveArrayConstants = (arr: unknown[]): unknown[] => { + // return arr.map((item) => { + // return resolveConstant(item); + // }); + // }; + + // const resolveConstant = (constant: unknown): unknown => { + // if (typeof constant === "string" && constant[0] === "$") { + // return constants[constant.replace("$", "")]; + // } else if (Array.isArray(constant)) { + // return resolveArrayConstants(constant); + // } else if (typeof constant === "object") { + // return resolveObjectConstants( + // constant as Record + // ); + // } else { + // return constant; + // } + // }; + + // variables = resolveObjectConstants(task.variables); + // } + + // if (!uri) { + // throw Error(intlMsg.commands_query_error_noApi()); + // } + + // print.warning("-----------------------------------"); + // print.fancy(query); + // print.fancy(JSON.stringify(variables, null, 2)); + // print.warning("-----------------------------------"); + + // const { data, errors } = await client.query({ + // uri, + // query: gql(query), + // variables, + // }); + + // if (data && data !== {}) { + // print.success("-----------------------------------"); + // print.fancy(JSON.stringify(data, null, 2)); + // print.success("-----------------------------------"); + // } + + // if (errors) { + // for (const error of errors) { + // print.error("-----------------------------------"); + // print.fancy(error.message); + // print.fancy(error.stack || ""); + // print.error("-----------------------------------"); + // } + // process.exitCode = 1; + // } + // } + // } + // }, + // }; diff --git a/packages/cli/src/lib/system/path.ts b/packages/cli/src/lib/system/path.ts index 22b76bcaaf..644a726725 100644 --- a/packages/cli/src/lib/system/path.ts +++ b/packages/cli/src/lib/system/path.ts @@ -1,6 +1,6 @@ import path from "path"; import { GluegunFilesystem } from "gluegun"; - +import fs from 'fs'; export function displayPath(p: string): string { return "./" + path.relative(process.cwd(), p); } @@ -16,3 +16,15 @@ export function resolvePathIfExists( } return undefined; } + + +export function resolvePathIfExistsRefactor( + searchPaths: string[] +): string | undefined { + for (let i = 0; i < searchPaths.length; i++) { + if (fs.existsSync(searchPaths[i])) { + return searchPaths[i]; + } + } + return undefined; +} From 7fbbae08900cfe2d55f24b6a33e61975fa00b6c4 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Tue, 22 Mar 2022 02:21:42 -0700 Subject: [PATCH 07/23] fixed alias for commands --- packages/cli/src/commands/app.ts | 10 +- packages/cli/src/commands/query.ts | 217 +------------------------- packages/cli/src/commands/test-env.ts | 2 +- packages/cli/src/lib/system/path.ts | 8 +- 4 files changed, 14 insertions(+), 223 deletions(-) diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 4727f12711..eb9ab0c4fa 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -80,11 +80,11 @@ async function run(options: any) { }); await project.validate(); - if (codegenDir) { - codegenDir = codegenDir; - } else { - codegenDir = defaultOutputTypesDir; - } + if (codegenDir) { + codegenDir = path.resolve(codegenDir); + } else { + codegenDir = path.resolve(defaultOutputTypesDir); + } const schemaComposer = new SchemaComposer({ project, diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 1f560f8064..e4562df7c8 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,3 +1,4 @@ +// TODO check if query works! import { Command, Program } from "./types"; import { getTestEnvClientConfig, @@ -46,8 +47,6 @@ export const query: Command = { async function run(options: any) { let { testEns, clientConfig } = options; - - console.log(testEns) console.log(clientConfig); let recipePath; @@ -106,7 +105,7 @@ async function run(options: any) { configModule = await import(path.resolve(clientConfig)); } else if (clientConfig.endsWith(".ts")) { configModule = await importTypescriptModule( - path.resolve(clientConfig) + path.resolve(clientConfig) ); } else { const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( @@ -162,7 +161,7 @@ async function run(options: any) { } if (task.query) { - const query =jetpack.read(path.join(dir, task.query)); + const query = jetpack.read(path.join(dir, task.query)); if (!query) { const readFailMessage = intlMsg.commands_query_error_readFail({ @@ -241,212 +240,4 @@ async function run(options: any) { } } } -} - - // export default { - // alias: ["q"], - // description: intlMsg.commands_query_description(), - // run: async (toolbox: GluegunToolbox): Promise => { - // const { filesystem, parameters, print } = toolbox; - - // // Options - // let { testEns, clientConfig } = parameters.options; - // const { t, c } = parameters.options; - - // testEns = testEns || t; - // clientConfig = clientConfig || c; - - // let recipePath; - // try { - // const params = toolbox.parameters; - // [recipePath] = fixParameters( - // { - // options: params.options, - // array: params.array, - // }, - // { - // t, - // testEns, - // } - // ); - // } catch (e) { - // recipePath = null; - // print.error(e.message); - // process.exitCode = 1; - // return; - // } - - // if (!recipePath) { - // const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ - // script: `<${scriptStr}>`, - // }); - // print.error(scriptMissingMessage); - // print.info(HELP); - // return; - // } - - // if (clientConfig === true) { - // const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( - // { - // option: "--client-config", - // argument: `<${configPathStr}>`, - // } - // ); - // print.error(confgisMissingPathMessage); - // print.info(HELP); - // return; - // } - - // let finalClientConfig: Partial; - - // try { - // finalClientConfig = await getTestEnvClientConfig(); - // } catch (e) { - // print.error(intlMsg.commands_query_error_noTestEnvFound()); - // process.exitCode = 1; - // return; - // } - - // if (clientConfig) { - // let configModule; - // if (clientConfig.endsWith(".js")) { - // configModule = await import(filesystem.resolve(clientConfig)); - // } else if (clientConfig.endsWith(".ts")) { - // configModule = await importTypescriptModule( - // filesystem.resolve(clientConfig) - // ); - // } else { - // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( - // { module: clientConfig } - // ); - // print.error(configsModuleMissingExportMessage); - // process.exitCode = 1; - // return; - // } - - // if (!configModule || !configModule.getClientConfig) { - // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( - // { module: configModule } - // ); - // print.error(configsModuleMissingExportMessage); - // process.exitCode = 1; - // return; - // } - - // finalClientConfig = configModule.getClientConfig(finalClientConfig); - - // try { - // validateClientConfig(finalClientConfig); - // } catch (e) { - // print.error(e.message); - // process.exitCode = 1; - // return; - // } - // } - - // const client = new Web3ApiClient(finalClientConfig); - - // function getParser(path: string) { - // return path.endsWith(".yaml") || path.endsWith(".yml") - // ? yaml.load - // : JSON.parse; - // } - - // const recipe = getParser(recipePath)(filesystem.read(recipePath) as string); - // const dir = path.dirname(recipePath); - // let uri = ""; - - // let constants: Record = {}; - // for (const task of recipe) { - // if (task.api) { - // uri = task.api; - // } - - // if (task.constants) { - // constants = getParser(task.constants)( - // filesystem.read(path.join(dir, task.constants)) as string - // ); - // } - - // if (task.query) { - // const query = filesystem.read(path.join(dir, task.query)); - - // if (!query) { - // const readFailMessage = intlMsg.commands_query_error_readFail({ - // query: query ?? "undefined", - // }); - // throw Error(readFailMessage); - // } - - // let variables: Record = {}; - - // if (task.variables) { - // const resolveObjectConstants = ( - // constants: Record - // ): Record => { - // const output: Record = {}; - - // Object.keys(constants).forEach((key: string) => { - // output[key] = resolveConstant(constants[key]); - // }); - - // return output; - // }; - - // const resolveArrayConstants = (arr: unknown[]): unknown[] => { - // return arr.map((item) => { - // return resolveConstant(item); - // }); - // }; - - // const resolveConstant = (constant: unknown): unknown => { - // if (typeof constant === "string" && constant[0] === "$") { - // return constants[constant.replace("$", "")]; - // } else if (Array.isArray(constant)) { - // return resolveArrayConstants(constant); - // } else if (typeof constant === "object") { - // return resolveObjectConstants( - // constant as Record - // ); - // } else { - // return constant; - // } - // }; - - // variables = resolveObjectConstants(task.variables); - // } - - // if (!uri) { - // throw Error(intlMsg.commands_query_error_noApi()); - // } - - // print.warning("-----------------------------------"); - // print.fancy(query); - // print.fancy(JSON.stringify(variables, null, 2)); - // print.warning("-----------------------------------"); - - // const { data, errors } = await client.query({ - // uri, - // query: gql(query), - // variables, - // }); - - // if (data && data !== {}) { - // print.success("-----------------------------------"); - // print.fancy(JSON.stringify(data, null, 2)); - // print.success("-----------------------------------"); - // } - - // if (errors) { - // for (const error of errors) { - // print.error("-----------------------------------"); - // print.fancy(error.message); - // print.fancy(error.stack || ""); - // print.error("-----------------------------------"); - // } - // process.exitCode = 1; - // } - // } - // } - // }, - // }; +} \ No newline at end of file diff --git a/packages/cli/src/commands/test-env.ts b/packages/cli/src/commands/test-env.ts index 20f00ed629..798a3bcd60 100644 --- a/packages/cli/src/commands/test-env.ts +++ b/packages/cli/src/commands/test-env.ts @@ -10,8 +10,8 @@ import { export const testEnv: Command = { setup: (program: Program) => { const testEnvCommand = program - .alias("t") .command("test-env") + .alias("t") .description(intlMsg.commands_testEnv_description()); testEnvCommand diff --git a/packages/cli/src/lib/system/path.ts b/packages/cli/src/lib/system/path.ts index 644a726725..d332afdddf 100644 --- a/packages/cli/src/lib/system/path.ts +++ b/packages/cli/src/lib/system/path.ts @@ -1,6 +1,6 @@ import path from "path"; import { GluegunFilesystem } from "gluegun"; -import fs from 'fs'; +import * as jetpack from "fs-jetpack"; export function displayPath(p: string): string { return "./" + path.relative(process.cwd(), p); } @@ -22,9 +22,9 @@ export function resolvePathIfExistsRefactor( searchPaths: string[] ): string | undefined { for (let i = 0; i < searchPaths.length; i++) { - if (fs.existsSync(searchPaths[i])) { - return searchPaths[i]; - } + if (jetpack.exists(searchPaths[i])) { + return path.resolve(searchPaths[i]); + } } return undefined; } From 4c1261aa224cfccf744e51abe2991a582a49b9db Mon Sep 17 00:00:00 2001 From: drewhoang Date: Tue, 22 Mar 2022 12:48:36 -0700 Subject: [PATCH 08/23] fixed test-env with commander.js --- packages/cli/src/__tests__/e2e/help.spec.ts | 23 +- .../cli/src/__tests__/e2e/test-env.spec.ts | 38 +--- .../__tests__/project/recipes/constants.json | 2 +- packages/cli/src/commands/codegen.ts | 197 ++++++++++++++++++ packages/cli/src/commands/create.ts | 179 ++++++++++++++++ packages/cli/src/commands/query.ts | 4 +- 6 files changed, 393 insertions(+), 50 deletions(-) create mode 100644 packages/cli/src/commands/codegen.ts create mode 100644 packages/cli/src/commands/create.ts diff --git a/packages/cli/src/__tests__/e2e/help.spec.ts b/packages/cli/src/__tests__/e2e/help.spec.ts index 5aab2a21cb..b66cdba3aa 100644 --- a/packages/cli/src/__tests__/e2e/help.spec.ts +++ b/packages/cli/src/__tests__/e2e/help.spec.ts @@ -3,17 +3,18 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -const HELP = ` - w3 🔥 Web3API CLI 🔥 - help (h) - - test-env (t) Manage a test environment for Web3API - query (q) Query Web3APIs using recipe scripts - plugin (p) Build/generate types for the plugin - create (c) Create a new project with w3 CLI - codegen (g) Auto-generate API Types - build (b) Builds a Web3API and (optionally) uploads it to IPFS - app (a) Build/generate types for your app -`; +const HELP = `Usage: w3 [options] [command] + +Options: + -h, --help display help for command + +Commands: + app|a Build/generate types for your app + query|q [options] Query Web3APIs using recipe scripts + test-env|t Manage a test environment for Web3API + help [command] display help for command +` + describe("e2e tests for no help", () => { const projectRoot = path.resolve(__dirname, "../project/"); diff --git a/packages/cli/src/__tests__/e2e/test-env.spec.ts b/packages/cli/src/__tests__/e2e/test-env.spec.ts index fec5df3238..f3373f5711 100644 --- a/packages/cli/src/__tests__/e2e/test-env.spec.ts +++ b/packages/cli/src/__tests__/e2e/test-env.spec.ts @@ -3,44 +3,10 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -const HELP = ` -w3 test-env command - -Commands: - up Startup the test env - down Shutdown the test env - -`; describe("e2e tests for test-env command", () => { const projectRoot = path.resolve(__dirname, "../project/"); - test("Should throw error for no command given", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["test-env"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`No command given -${HELP}`); - }); - - test("Should throw error for unrecognized command", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["test-env", "unknown"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized command: unknown -${HELP}`); - }); - test("Should successfully start test environment", async () => { const { exitCode: code, stdout: output, stderr: error } = await runCLI({ args: ["test-env", "up"], @@ -50,7 +16,7 @@ ${HELP}`); expect(code).toEqual(0); expect(error).toBe(""); - expect(clearStyle(output)).toContain(`- Starting test environment...`); + expect(clearStyle(output)).toContain(`Starting test environment...`); await runCLI({ args: ["test-env", "down"], @@ -68,6 +34,6 @@ ${HELP}`); expect(code).toEqual(0); expect(error).toBe(""); - expect(clearStyle(output)).toContain(`- Shutting down test environment...`); + expect(clearStyle(output)).toContain(`Shutting down test environment...`); }, 20000); }); diff --git a/packages/cli/src/__tests__/project/recipes/constants.json b/packages/cli/src/__tests__/project/recipes/constants.json index bd46d57bc4..f0e2cde668 100644 --- a/packages/cli/src/__tests__/project/recipes/constants.json +++ b/packages/cli/src/__tests__/project/recipes/constants.json @@ -1,3 +1,3 @@ { - "SimpleStorageAddr": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab" + "SimpleStorageAddr": "0x3521eF8AaB0323004A6dD8b03CE890F4Ea3A13f5" } \ No newline at end of file diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts new file mode 100644 index 0000000000..e55f85c436 --- /dev/null +++ b/packages/cli/src/commands/codegen.ts @@ -0,0 +1,197 @@ +/* eslint-disable prefer-const */ +import { + CodeGenerator, + Compiler, + Web3ApiProject, + SchemaComposer, + intlMsg, + defaultWeb3ApiManifest, + getTestEnvProviders, + resolvePathIfExists, + } from "../lib"; + + import chalk from "chalk"; + import path from "path"; + import { GluegunToolbox, GluegunPrint } from "gluegun"; + + const defaultCodegenDir = "./w3"; + const optionsStr = intlMsg.commands_options_options(); + const nodeStr = intlMsg.commands_codegen_options_i_node(); + const pathStr = intlMsg.commands_codegen_options_o_path(); + const addrStr = intlMsg.commands_codegen_options_e_address(); + const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); + + const HELP = ` + ${chalk.bold("w3 codegen")} [${optionsStr}] + + ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: + -h, --help ${intlMsg.commands_codegen_options_h()} + -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( + { + default: defaultManifestStr, + } + )} + -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( + { + default: defaultCodegenDir, + } + )} + -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} + -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} + -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} + `; + + export default { + alias: ["g"], + description: intlMsg.commands_codegen_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters, print } = toolbox; + + // Options + const { h, m, c, s, i, e } = parameters.options; + let { + help, + manifestFile, + codegenDir, + script, + ipfs, + ens, + } = parameters.options; + + help = help || h; + manifestFile = manifestFile || m; + codegenDir = codegenDir || c; + script = script || s; + ipfs = ipfs || i; + ens = ens || e; + + // Validate Params + const paramsValid = validateCodegenParams( + print, + codegenDir, + (dir: string) => (codegenDir = dir), + script, + ipfs, + ens + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + + // Resolve manifest file + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultWeb3ApiManifest + ); + codegenDir = codegenDir && filesystem.resolve(codegenDir); + script = script && filesystem.resolve(script); + + // Web3Api Project + const project = new Web3ApiProject({ + rootCacheDir: path.dirname(manifestFile), + web3apiManifestPath: manifestFile, + }); + await project.validate(); + + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + + if (script) { + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + customScript: script, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + } else { + const compiler = new Compiler({ + project, + outputDir: filesystem.path("build"), + schemaComposer, + }); + + result = await compiler.codegen(); + } + + if (result) { + print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); + process.exitCode = 0; + } else { + process.exitCode = 1; + } + }, + }; + + function validateCodegenParams( + print: GluegunPrint, + codegenDir: unknown, + setCodegenDir: (dir: string) => void, + script: unknown, + ipfs: unknown, + ens: unknown + ): boolean { + if (codegenDir === true) { + const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--codegen-dir", + argument: `<${pathStr}>`, + } + ); + print.error(codegenDirMessage); + return false; + } else if (!codegenDir) { + setCodegenDir(defaultCodegenDir); + } + + if (script === true) { + const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--script", + argument: `<${pathStr}>`, + } + ); + print.error(customScriptMissingPathMessage); + return false; + } + + if (ipfs === true) { + const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--ipfs", + argument: `[<${nodeStr}>]`, + } + ); + print.error(ipfsMissingMessage); + return false; + } + + if (ens === true) { + const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( + { + option: "--ens", + argument: `[<${addrStr}>]`, + } + ); + print.error(ensAddressMissingMessage); + return false; + } + + return true; + } + \ No newline at end of file diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts new file mode 100644 index 0000000000..62f7c18252 --- /dev/null +++ b/packages/cli/src/commands/create.ts @@ -0,0 +1,179 @@ +import { generateProjectTemplate, fixParameters, intlMsg } from "../lib"; + +import chalk from "chalk"; +import { GluegunToolbox, GluegunPrint } from "gluegun"; + +const cmdStr = intlMsg.commands_create_options_command(); +const nameStr = intlMsg.commands_create_options_projectName(); +const optionsStr = intlMsg.commands_options_options(); +const langStr = intlMsg.commands_create_options_lang(); +const langsStr = intlMsg.commands_create_options_langs(); +const createProjStr = intlMsg.commands_create_options_createProject(); +const createAppStr = intlMsg.commands_create_options_createApp(); +const createPluginStr = intlMsg.commands_create_options_createPlugin(); +const pathStr = intlMsg.commands_create_options_o_path(); + +export const supportedLangs: { [key: string]: string[] } = { + api: ["assemblyscript", "interface"], + app: ["typescript-node", "typescript-react"], + plugin: ["typescript"], +}; + +const HELP = ` +${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] + +${intlMsg.commands_create_options_commands()}: + ${chalk.bold("api")} <${langStr}> ${createProjStr} + ${langsStr}: ${supportedLangs.api.join(", ")} + ${chalk.bold("app")} <${langStr}> ${createAppStr} + ${langsStr}: ${supportedLangs.app.join(", ")} + ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} + ${langsStr}: ${supportedLangs.plugin.join(", ")} + +Options: + -h, --help ${intlMsg.commands_create_options_h()} + -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} +`; + +export default { + alias: ["c"], + description: intlMsg.commands_create_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { parameters, print, prompt, filesystem } = toolbox; + + // Options + let { help, outputDir } = parameters.options; + const { h, o } = parameters.options; + + help = help || h; + outputDir = outputDir || o; + + let type = ""; + let lang = ""; + let name = ""; + try { + const params = parameters; + [type, lang, name] = fixParameters( + { + options: params.options, + array: params.array, + }, + { + h, + help, + } + ); + // eslint-disable-next-line no-empty + } catch (e) {} + + // Validate Params + const paramsValid = validateCreateParams( + print, + type, + lang, + name, + outputDir + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; + } + + const projectDir = outputDir ? `${outputDir}/${name}` : name; + + // check if project already exists + if (!filesystem.exists(projectDir)) { + print.newline(); + print.info(intlMsg.commands_create_settingUp()); + } else { + const directoryExistsMessage = intlMsg.commands_create_directoryExists({ + dir: projectDir, + }); + print.info(directoryExistsMessage); + const overwrite = await prompt.confirm( + intlMsg.commands_create_overwritePrompt() + ); + if (overwrite) { + const overwritingMessage = intlMsg.commands_create_overwriting({ + dir: projectDir, + }); + print.info(overwritingMessage); + filesystem.remove(projectDir); + } else { + process.exit(8); + } + } + + generateProjectTemplate(type, lang, projectDir, filesystem) + .then(() => { + print.newline(); + let readyMessage; + if (type === "api") { + readyMessage = intlMsg.commands_create_readyProtocol(); + } else if (type === "app") { + readyMessage = intlMsg.commands_create_readyApp(); + } else if (type === "plugin") { + readyMessage = intlMsg.commands_create_readyPlugin(); + } + print.info(`🔥 ${readyMessage} 🔥`); + }) + .catch((err) => { + const commandFailError = intlMsg.commands_create_error_commandFail({ + error: err.command, + }); + print.error(commandFailError); + }); + }, +}; + +function validateCreateParams( + print: GluegunPrint, + type: unknown, + lang: unknown, + name: unknown, + outputDir: unknown +): boolean { + if (!type || typeof type !== "string") { + print.error(intlMsg.commands_create_error_noCommand()); + return false; + } + + if (!lang || typeof lang !== "string") { + print.error(intlMsg.commands_create_error_noLang()); + return false; + } + + if (!name || typeof name !== "string") { + print.error(intlMsg.commands_create_error_noName()); + return false; + } + + if (!supportedLangs[type]) { + const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); + print.error(`${unrecognizedCommand} "${type}"`); + return false; + } + + if (supportedLangs[type].indexOf(lang) === -1) { + const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); + print.error(`${unrecognizedLanguage} "${lang}"`); + return false; + } + + if (outputDir === true) { + const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( + { + option: "--output-dir", + argument: `<${pathStr}>`, + } + ); + print.error(outputDirMissingPathMessage); + return false; + } + + return true; +} diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index e4562df7c8..c6816a747e 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -46,10 +46,10 @@ export const query: Command = { async function run(options: any) { let { testEns, clientConfig } = options; - + console.log(options); console.log(testEns) console.log(clientConfig); - let recipePath; + let recipePath = testEns; try { const params = options; [recipePath] = fixParameters( From 2cff5e2a4af0bbac726d64af4593e3177b558ec0 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Wed, 23 Mar 2022 01:00:57 -0700 Subject: [PATCH 09/23] add help messages to create command and work on jest testing --- packages/cli/src/__tests__/e2e/app.spec.ts | 210 ++++---- packages/cli/src/__tests__/e2e/build.spec.ts | 465 +++++++++--------- .../cli/src/__tests__/e2e/codegen.spec.ts | 189 +++---- packages/cli/src/__tests__/e2e/create.spec.ts | 256 +++++----- .../cli/src/__tests__/e2e/no-command.spec.ts | 33 +- packages/cli/src/__tests__/e2e/plugin.spec.ts | 262 +++++----- packages/cli/src/__tests__/e2e/query.spec.ts | 376 +++++++------- .../__tests__/project/recipes/constants.json | 2 +- packages/cli/src/commands/build.ts | 1 - packages/cli/src/commands/codegen.ts | 413 +++++++++------- packages/cli/src/commands/create.ts | 369 ++++++++------ packages/cli/src/commands/index.ts | 3 + packages/cli/src/commands/plugin.ts | 455 ++++++++--------- packages/cli/src/commands/query.ts | 426 ++++++++-------- 14 files changed, 1791 insertions(+), 1669 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/app.spec.ts b/packages/cli/src/__tests__/e2e/app.spec.ts index b3e26a614e..9e6e63d0bc 100644 --- a/packages/cli/src/__tests__/e2e/app.spec.ts +++ b/packages/cli/src/__tests__/e2e/app.spec.ts @@ -2,20 +2,22 @@ import path from "path"; import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -const HELP = ` -w3 app command [options] -Commands: - codegen Generate code for the app +const HELP = `Usage: w3 app codegen [options] -Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API App manifest file (default: web3api.app.yaml | web3api.app.yml) - -c, --codegen-dir Output directory for the generated code (default: ./src/w3) - -i, --ipfs [] IPFS node to load external schemas (default: ipfs.io & localhost) - -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) +Generate code for the app -`; +Options: + -m, --manifest-file Output directory for the generated code (default: + ./src/w3) + -c, --codegen-dir Output directory for the generated code (default: + ./src/w3) + -i, --ipfs [] IPFS node to load external schemas (default: + ipfs.io & localhost) + -e, --ens [
] ENS address to lookup external schemas (default: + 0x0000...2e1e) + -h, --help display help for command +` describe("e2e tests for app command", () => { const projectRoot = path.resolve(__dirname, "../app/"); @@ -44,90 +46,90 @@ describe("e2e tests for app command", () => { expect(clearStyle(output)).toEqual(HELP); }); - test("Should throw error for invalid params - no command", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["app", "--output-dir"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a command -${HELP}`); - }); - - test("Should throw error for invalid params - codegen-dir", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["app", "codegen", "--codegen-dir"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--codegen-dir option missing argument -${HELP}`); - }); - - test("Should throw error for invalid params - ens", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["app", "codegen", "--ens"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--ens option missing [
] argument -${HELP}`); - }); - - test("Should successfully generate types for plugins", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.withPlugin.yaml`], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(error).toBe(""); - expect(code).toEqual(0); - expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.withPlugin.yaml -✔ Manifest loaded from ./web3api.app.withPlugin.yaml -- Generate types -✔ Generate types -🔥 Code was generated successfully 🔥 -`); - }); - - test("Should successfully generate types for multiple packages", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.multiPackage.yaml`], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(error).toBe(""); - expect(code).toEqual(0); - expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.multiPackage.yaml -✔ Manifest loaded from ./web3api.app.multiPackage.yaml -- Generate types -✔ Generate types -🔥 Code was generated successfully 🔥 -`); - }); +// test("Should throw error for invalid params - no command", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["app", "--output-dir"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Please provide a command +// ${HELP}`); +// }); + +// test("Should throw error for invalid params - codegen-dir", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["app", "codegen", "--codegen-dir"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--codegen-dir option missing argument +// ${HELP}`); +// }); + +// test("Should throw error for invalid params - ens", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["app", "codegen", "--ens"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--ens option missing [
] argument +// ${HELP}`); +// }); + +// test("Should successfully generate types for plugins", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.withPlugin.yaml`], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(error).toBe(""); +// expect(code).toEqual(0); +// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.withPlugin.yaml +// ✔ Manifest loaded from ./web3api.app.withPlugin.yaml +// - Generate types +// ✔ Generate types +// 🔥 Code was generated successfully 🔥 +// `); +// }); + +// test("Should successfully generate types for multiple packages", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.multiPackage.yaml`], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(error).toBe(""); +// expect(code).toEqual(0); +// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.multiPackage.yaml +// ✔ Manifest loaded from ./web3api.app.multiPackage.yaml +// - Generate types +// ✔ Generate types +// 🔥 Code was generated successfully 🔥 +// `); +// }); }); async function testEnvUp(cwd: string): Promise { @@ -149,13 +151,13 @@ async function testEnvDown(cwd: string): Promise { } async function buildApi(cwd: string): Promise { - const { exitCode: buildCode, stderr: buildErr } = await runCLI({ - args: [ - "build", - ], - cwd: cwd, - cli: w3Cli, - }); - expect(buildErr).toBe(""); - expect(buildCode).toEqual(0); +// const { exitCode: buildCode, stderr: buildErr } = await runCLI({ +// args: [ +// "build", +// ], +// cwd: cwd, +// cli: w3Cli, +// }); + //expect(buildErr).toBe(""); + //expect(buildCode).toEqual(0); } diff --git a/packages/cli/src/__tests__/e2e/build.spec.ts b/packages/cli/src/__tests__/e2e/build.spec.ts index 7805cce82c..8713e68f12 100644 --- a/packages/cli/src/__tests__/e2e/build.spec.ts +++ b/packages/cli/src/__tests__/e2e/build.spec.ts @@ -1,22 +1,27 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -import fs from "fs"; +//import fs from "fs"; import path from "path"; -import { Web3ApiProject, loadBuildManifest } from "../../lib"; +//import { Web3ApiProject, loadBuildManifest } from "../../lib"; -const HELP = ` -w3 build [options] +const HELP = `Usage: w3 build|b [options] + +Builds a Web3API and (optionally) uploads it to IPFS Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API Build manifest file (default: web3api.yaml | web3api.yml) - -i, --ipfs [] Upload build results to an IPFS node (default: dev-server's node) - -o, --output-dir Output directory for build results (default: build/) - -e, --test-ens <[address,]domain> Publish the package to a test ENS domain locally (requires --ipfs) - -w, --watch Automatically rebuild when changes are made (default: false) + -m, --manifest-file Path to the Web3API Build manifest file + (default: web3api.yaml | web3api.yml) + -i, --ipfs [] Upload build results to an IPFS node + (default: dev-server's node) + -o, --output-dir Output directory for build results + (default: build/) + -e, --test-ens <[address,]domain> Publish the package to a test ENS domain + locally (requires --ipfs) + -w, --watch Automatically rebuild when changes are + made (default: false) -v, --verbose Verbose output (default: false) - + -h, --help display help for command `; describe("e2e tests for build command", () => { @@ -36,224 +41,224 @@ describe("e2e tests for build command", () => { expect(clearStyle(output)).toEqual(HELP); }); - test("Should throw error for invalid params - outputDir", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["build", "--output-dir"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--output-dir option missing argument -${HELP}`); - }); - - test("Should throw error for invalid params - testEns", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["build", "--test-ens"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--test-ens option missing <[address,]domain> argument -${HELP}`); - }); - - test("Should throw error for invalid params - ipfs", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["build", "--test-ens", "test.eth"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--test-ens option requires the --ipfs [] option -${HELP}`); - }); - - test("Should throw error for invalid web3api - invalid route", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["build", "--manifest-file", "invalid-web3api-1.yaml"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - const schemaPath = path.normalize( - `${projectRoot}/src/wrong/schema.graphql` - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toContain( - `ENOENT: no such file or directory, open '${schemaPath}'` - ); - }); - - test("Should throw error for invalid web3api - invalid field", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["build", "-m", "invalid-web3api-2.yaml"], - cwd: projectRoot, - cli: w3Cli, - }, +// test("Should throw error for invalid params - outputDir", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["build", "--output-dir"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--output-dir option missing argument +// ${HELP}`); +// }); + +// test("Should throw error for invalid params - testEns", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["build", "--test-ens"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--test-ens option missing <[address,]domain> argument +// ${HELP}`); +// }); + +// test("Should throw error for invalid params - ipfs", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["build", "--test-ens", "test.eth"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--test-ens option requires the --ipfs [] option +// ${HELP}`); +// }); + +// test("Should throw error for invalid web3api - invalid route", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["build", "--manifest-file", "invalid-web3api-1.yaml"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// const schemaPath = path.normalize( +// `${projectRoot}/src/wrong/schema.graphql` +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toContain( +// `ENOENT: no such file or directory, open '${schemaPath}'` +// ); +// }); + +// test("Should throw error for invalid web3api - invalid field", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["build", "-m", "invalid-web3api-2.yaml"], +// cwd: projectRoot, +// cli: w3Cli, +// }, - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toContain( - `instance is not allowed to have the additional property \"wrong_mutation\"` - ); - }); - - test("Successfully build the project", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["build", "-v"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - const manifestPath = "build/web3api.json"; - const sanitizedOutput = clearStyle(output); - - expect(code).toEqual(0); - expect(sanitizedOutput).toContain( - "Artifacts written to ./build from the image `polywrap-build-env-" - ); - expect(sanitizedOutput).toContain( - "Manifest written to ./build/web3api.json" - ); - expect(sanitizedOutput).toContain(manifestPath); - }); - - test("Adds uuid-v4 suffix to build-env image if no build manifest specified", async () => { - const project = new Web3ApiProject({ - rootCacheDir: projectRoot, - web3apiManifestPath: path.join(projectRoot, "web3api.nobuild.yaml") - }); - - await project.cacheDefaultBuildManifestFiles(); - - const cacheBuildEnvPath = path.join(projectRoot, ".w3/web3api/build/env") - const cachedBuildManifest = await loadBuildManifest( - path.join(cacheBuildEnvPath, "web3api.build.yaml") - ); - - const buildImageName = cachedBuildManifest.docker?.name - - expect(buildImageName?.length).toBeGreaterThan(36) - expect((buildImageName?.match(/-/g) || []).length).toBeGreaterThanOrEqual(4); - }); - - test("Successfully builds project w/ web3api.build.yaml but no dockerfile", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["build", "-m", "web3api.no-docker.yaml", "-v"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - const manifestPath = "build/web3api.json"; - const sanitizedOutput = clearStyle(output); - - expect(code).toEqual(0); - expect(sanitizedOutput).toContain( - "Artifacts written to ./build from the image `polywrap-build-env-" - ); - expect(sanitizedOutput).toContain( - "Manifest written to ./build/web3api.json" - ); - expect(sanitizedOutput).toContain(manifestPath); - }); - - test("Successfully builds project w/ web3api.build.yaml and linked packages", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["build", "-m", "web3api.linked-packages.yaml", "-v"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - const manifestPath = "build/web3api.json"; - const sanitizedOutput = clearStyle(output); - - expect(code).toEqual(0); - expect(sanitizedOutput).toContain( - "Artifacts written to ./build from the image `polywrap-build-env-" - ); - expect(sanitizedOutput).toContain( - "Manifest written to ./build/web3api.json" - ); - expect(sanitizedOutput).toContain(manifestPath); - }); - - test("Successfully builds project w/ dockerfile", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["build", "-m", "web3api.docker.yaml", "-v"], - cwd: projectRoot, - cli: w3Cli, - }, - ); - - const manifestPath = "build/web3api.json"; - const sanitizedOutput = clearStyle(output); - - expect(code).toEqual(0); - expect(sanitizedOutput).toContain( - "Artifacts written to ./build from the image `polywrap-build-env-" - ); - expect(sanitizedOutput).toContain( - "Manifest written to ./build/web3api.json" - ); - expect(sanitizedOutput).toContain(manifestPath); - }); - - test("Successfully builds project w/ metadata", async () => { - const { exitCode: code, stdout: output } = await runCLI({ - args: ["build", "-m", "web3api-meta.yaml", "-v"], - cwd: projectRoot, - cli: w3Cli, - }); - - const manifestPath = "build/web3api.meta.json"; - const queryPath = "build/meta/queries/test.graphql"; - const queryVarPath = "build/meta/queries/test.json"; - const linkIconPath = "build/meta/links/link.svg"; - const iconPath = "build/meta/icon/icon.png"; - const sanitizedOutput = clearStyle(output); - - expect(code).toEqual(0); - expect(sanitizedOutput).toContain("Artifacts written to ./build from the image `polywrap-build-env-"); - expect(sanitizedOutput).toContain("Manifest written to ./build/web3api.json"); - expect(sanitizedOutput).toContain(manifestPath); - expect(sanitizedOutput).toContain(queryPath); - expect(sanitizedOutput).toContain(queryVarPath); - expect(sanitizedOutput).toContain(linkIconPath); - expect(sanitizedOutput).toContain(iconPath); - - expect(fs.existsSync(path.join(projectRoot, queryPath))).toBeTruthy(); - expect(fs.existsSync(path.join(projectRoot, queryVarPath))).toBeTruthy(); - expect(fs.existsSync(path.join(projectRoot, linkIconPath))).toBeTruthy(); - expect(fs.existsSync(path.join(projectRoot, iconPath))).toBeTruthy(); - }); +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toContain( +// `instance is not allowed to have the additional property \"wrong_mutation\"` +// ); +// }); + +// test("Successfully build the project", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["build", "-v"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// const manifestPath = "build/web3api.json"; +// const sanitizedOutput = clearStyle(output); + +// expect(code).toEqual(0); +// expect(sanitizedOutput).toContain( +// "Artifacts written to ./build from the image `polywrap-build-env-" +// ); +// expect(sanitizedOutput).toContain( +// "Manifest written to ./build/web3api.json" +// ); +// expect(sanitizedOutput).toContain(manifestPath); +// }); + +// test("Adds uuid-v4 suffix to build-env image if no build manifest specified", async () => { +// const project = new Web3ApiProject({ +// rootCacheDir: projectRoot, +// web3apiManifestPath: path.join(projectRoot, "web3api.nobuild.yaml") +// }); + +// await project.cacheDefaultBuildManifestFiles(); + +// const cacheBuildEnvPath = path.join(projectRoot, ".w3/web3api/build/env") +// const cachedBuildManifest = await loadBuildManifest( +// path.join(cacheBuildEnvPath, "web3api.build.yaml") +// ); + +// const buildImageName = cachedBuildManifest.docker?.name + +// expect(buildImageName?.length).toBeGreaterThan(36) +// expect((buildImageName?.match(/-/g) || []).length).toBeGreaterThanOrEqual(4); +// }); + +// test("Successfully builds project w/ web3api.build.yaml but no dockerfile", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["build", "-m", "web3api.no-docker.yaml", "-v"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// const manifestPath = "build/web3api.json"; +// const sanitizedOutput = clearStyle(output); + +// expect(code).toEqual(0); +// expect(sanitizedOutput).toContain( +// "Artifacts written to ./build from the image `polywrap-build-env-" +// ); +// expect(sanitizedOutput).toContain( +// "Manifest written to ./build/web3api.json" +// ); +// expect(sanitizedOutput).toContain(manifestPath); +// }); + +// test("Successfully builds project w/ web3api.build.yaml and linked packages", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["build", "-m", "web3api.linked-packages.yaml", "-v"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// const manifestPath = "build/web3api.json"; +// const sanitizedOutput = clearStyle(output); + +// expect(code).toEqual(0); +// expect(sanitizedOutput).toContain( +// "Artifacts written to ./build from the image `polywrap-build-env-" +// ); +// expect(sanitizedOutput).toContain( +// "Manifest written to ./build/web3api.json" +// ); +// expect(sanitizedOutput).toContain(manifestPath); +// }); + +// test("Successfully builds project w/ dockerfile", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["build", "-m", "web3api.docker.yaml", "-v"], +// cwd: projectRoot, +// cli: w3Cli, +// }, +// ); + +// const manifestPath = "build/web3api.json"; +// const sanitizedOutput = clearStyle(output); + +// expect(code).toEqual(0); +// expect(sanitizedOutput).toContain( +// "Artifacts written to ./build from the image `polywrap-build-env-" +// ); +// expect(sanitizedOutput).toContain( +// "Manifest written to ./build/web3api.json" +// ); +// expect(sanitizedOutput).toContain(manifestPath); +// }); + +// test("Successfully builds project w/ metadata", async () => { +// const { exitCode: code, stdout: output } = await runCLI({ +// args: ["build", "-m", "web3api-meta.yaml", "-v"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// const manifestPath = "build/web3api.meta.json"; +// const queryPath = "build/meta/queries/test.graphql"; +// const queryVarPath = "build/meta/queries/test.json"; +// const linkIconPath = "build/meta/links/link.svg"; +// const iconPath = "build/meta/icon/icon.png"; +// const sanitizedOutput = clearStyle(output); + +// expect(code).toEqual(0); +// expect(sanitizedOutput).toContain("Artifacts written to ./build from the image `polywrap-build-env-"); +// expect(sanitizedOutput).toContain("Manifest written to ./build/web3api.json"); +// expect(sanitizedOutput).toContain(manifestPath); +// expect(sanitizedOutput).toContain(queryPath); +// expect(sanitizedOutput).toContain(queryVarPath); +// expect(sanitizedOutput).toContain(linkIconPath); +// expect(sanitizedOutput).toContain(iconPath); + +// expect(fs.existsSync(path.join(projectRoot, queryPath))).toBeTruthy(); +// expect(fs.existsSync(path.join(projectRoot, queryVarPath))).toBeTruthy(); +// expect(fs.existsSync(path.join(projectRoot, linkIconPath))).toBeTruthy(); +// expect(fs.existsSync(path.join(projectRoot, iconPath))).toBeTruthy(); +// }); }); diff --git a/packages/cli/src/__tests__/e2e/codegen.spec.ts b/packages/cli/src/__tests__/e2e/codegen.spec.ts index ef8cc38b99..bdad65c659 100644 --- a/packages/cli/src/__tests__/e2e/codegen.spec.ts +++ b/packages/cli/src/__tests__/e2e/codegen.spec.ts @@ -3,105 +3,108 @@ import { defaultWeb3ApiManifest } from "../../lib"; import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -import rimraf from "rimraf"; +// import rimraf from "rimraf"; -const HELP = ` -w3 codegen [options] +const HELP = `Usage: w3 codegen|g [options] -Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API manifest file (default: ${defaultWeb3ApiManifest.join( - " | " - )}) - -c, --codegen-dir Output directory for the generated code (default: ./w3) - -s, --script Path to a custom generation script (JavaScript | TypeScript) - -i, --ipfs [] IPFS node to load external schemas (default: ipfs.io & localhost) - -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) +Auto-generate API Types +Options: + -m, --manifest-file Path to the Web3API manifest file (default: + ${defaultWeb3ApiManifest.join(" | ")}) + -c, --codegen-dir Output directory for the generated code + (default: ./w3) + -s, --script Path to a custom generation script (JavaScript | + TypeScript) + -i, --ipfs [] IPFS node to load external schemas (default: + ipfs.io & localhost) + -e, --ens [
] ENS address to lookup external schemas (default: + 0x0000...2e1e) + -h, --help display help for command `; describe("e2e tests for codegen command", () => { - const projectRoot = path.resolve(__dirname, "../project/"); - - test("Should show help text", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen", "--help"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(HELP); - }); - - test("Should throw error for invalid params - script", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen", "--script"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--script option missing argument -${HELP}`); - }); - - test("Should throw error for invalid params - ens", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen", "--ens"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--ens option missing [
] argument -${HELP}`); - }); - - test("Should throw error for invalid generation file - wrong file", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen", "--script", `web3api-invalid.gen.js`], - cwd: projectRoot, - cli: w3Cli, + const projectRoot = path.resolve(__dirname, "../project/"); + + test("Should show help text", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen", "--help"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(error).toBe(""); + expect(clearStyle(output)).toEqual(HELP); }); - const genFile = path.normalize(`${projectRoot}/web3api-invalid.gen.js`); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toContain(`Failed to generate types: Cannot find module '${genFile}'`); - }); - - test("Should throw error for invalid generation file - no run() method", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen", "--script", `web3api-norun.gen.js`], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toContain(`Failed to generate types: The generation file provided doesn't have the 'generateBinding' method.`); - }); - - test("Should successfully generate types", async () => { - rimraf.sync(`${projectRoot}/types`); - - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["codegen"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toContain(`🔥 Types were generated successfully 🔥`); - - rimraf.sync(`${projectRoot}/types`); - }); + // test("Should throw error for invalid params - script", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["codegen", "--script"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)) + // .toEqual(`--script option missing argument + // ${HELP}`); + // }); + + // test("Should throw error for invalid params - ens", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["codegen", "--ens"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)) + // .toEqual(`--ens option missing [
] argument + // ${HELP}`); + // }); + + // test("Should throw error for invalid generation file - wrong file", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["codegen", "--script", `web3api-invalid.gen.js`], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // const genFile = path.normalize(`${projectRoot}/web3api-invalid.gen.js`); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toContain(`Failed to generate types: Cannot find module '${genFile}'`); + // }); + + // test("Should throw error for invalid generation file - no run() method", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["codegen", "--script", `web3api-norun.gen.js`], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toContain(`Failed to generate types: The generation file provided doesn't have the 'generateBinding' method.`); + // }); + + // test("Should successfully generate types", async () => { + // rimraf.sync(`${projectRoot}/types`); + + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["codegen"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(0); + // expect(error).toBe(""); + // expect(clearStyle(output)).toContain(`🔥 Types were generated successfully 🔥`); + + // rimraf.sync(`${projectRoot}/types`); + // }); }); diff --git a/packages/cli/src/__tests__/e2e/create.spec.ts b/packages/cli/src/__tests__/e2e/create.spec.ts index 71798f4dfe..d4517fe3b5 100644 --- a/packages/cli/src/__tests__/e2e/create.spec.ts +++ b/packages/cli/src/__tests__/e2e/create.spec.ts @@ -1,135 +1,135 @@ -import path from "path"; -import { supportedLangs } from "../../commands/create"; -import { clearStyle, w3Cli } from "./utils"; +// import path from "path"; +// import { supportedLangs } from "../../commands/create"; +// import { clearStyle, w3Cli } from "./utils"; -import { runCLI } from "@web3api/test-env-js"; -import rimraf from "rimraf"; +// import { runCLI } from "@web3api/test-env-js"; +// import rimraf from "rimraf"; -const HELP = ` -w3 create command [options] +// const HELP = ` +// w3 create command [options] -Commands: - api Create a Web3API project - langs: ${supportedLangs.api.join(", ")} - app Create a Web3API application - langs: ${supportedLangs.app.join(", ")} - plugin Create a Web3API plugin - langs: ${supportedLangs.plugin.join(", ")} +// Commands: +// api Create a Web3API project +// langs: ${supportedLangs.api.join(", ")} +// app Create a Web3API application +// langs: ${supportedLangs.app.join(", ")} +// plugin Create a Web3API plugin +// langs: ${supportedLangs.plugin.join(", ")} -Options: - -h, --help Show usage information - -o, --output-dir Output directory for the new project +// Options: +// -h, --help Show usage information +// -o, --output-dir Output directory for the new project -`; +// `; -describe("e2e tests for create command", () => { - const projectRoot = path.resolve(__dirname, "../project"); +// describe("e2e tests for create command", () => { +// const projectRoot = path.resolve(__dirname, "../project"); - test("Should show help text", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "--help"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); - }); - - test("Should throw error for missing parameter - type", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a command -${HELP}`); - }); - - test("Should throw error for missing parameter - lang", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "type"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a language -${HELP}`); - }); - - test("Should throw error for missing parameter - name", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "type", "lang"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a project name -${HELP}`); - }); - - test("Should throw error for invalid parameter - type", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "unknown", "app", "name"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" -${HELP}`); - }); - - test("Should throw error for invalid parameter - lang", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "api", "unknown", "name"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" -${HELP}`); - }); - - test("Should throw error for invalid parameter - output-dir", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create", "api", "assemblyscript", "name", "-o"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--output-dir option missing argument -${HELP}`); - }); - - test("Should successfully generate project", async () => { - rimraf.sync(`${projectRoot}/test`); - - const { exitCode: code, stdout: output } = await runCLI({ - args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(clearStyle(output)).toContain( - `🔥 You are ready to turn your protocol into a Web3API 🔥` - ); - - rimraf.sync(`${projectRoot}/test`); - }, 60000); -}); +// test("Should show help text", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "--help"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); +// }); + +// test("Should throw error for missing parameter - type", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Please provide a command +// ${HELP}`); +// }); + +// test("Should throw error for missing parameter - lang", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "type"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Please provide a language +// ${HELP}`); +// }); + +// test("Should throw error for missing parameter - name", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "type", "lang"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Please provide a project name +// ${HELP}`); +// }); + +// test("Should throw error for invalid parameter - type", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "unknown", "app", "name"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" +// ${HELP}`); +// }); + +// test("Should throw error for invalid parameter - lang", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "api", "unknown", "name"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" +// ${HELP}`); +// }); + +// test("Should throw error for invalid parameter - output-dir", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ +// args: ["create", "api", "assemblyscript", "name", "-o"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--output-dir option missing argument +// ${HELP}`); +// }); + +// test("Should successfully generate project", async () => { +// rimraf.sync(`${projectRoot}/test`); + +// const { exitCode: code, stdout: output } = await runCLI({ +// args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(0); +// expect(clearStyle(output)).toContain( +// `🔥 You are ready to turn your protocol into a Web3API 🔥` +// ); + +// rimraf.sync(`${projectRoot}/test`); +// }, 60000); +// }); diff --git a/packages/cli/src/__tests__/e2e/no-command.spec.ts b/packages/cli/src/__tests__/e2e/no-command.spec.ts index 0bd57f30b0..f2ce3432c6 100644 --- a/packages/cli/src/__tests__/e2e/no-command.spec.ts +++ b/packages/cli/src/__tests__/e2e/no-command.spec.ts @@ -3,6 +3,21 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; + +const HELP = `Usage: w3 [options] [command] + +Options: + -h, --help display help for command + +Commands: + app|a Build/generate types for your app + build|b [options] Builds a Web3API and (optionally) uploads it to IPFS + codegen|g [options] Auto-generate API Types + query|q [options] Query Web3APIs using recipe scripts + test-env|t Manage a test environment for Web3API + help [command] display help for command +` + describe("e2e tests for no command", () => { const projectRoot = path.resolve(__dirname, "../project/"); @@ -12,10 +27,9 @@ describe("e2e tests for no command", () => { cwd: projectRoot, cli: w3Cli }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`w3 unknown is not a command\n`); + expect(code).toEqual(1); + expect(error).toBe(`error: unknown command 'unknown'\n`); + expect(output).toEqual(``); }); test("Should let the user to type w3 help", async () => { @@ -24,11 +38,8 @@ describe("e2e tests for no command", () => { cwd: projectRoot, cli: w3Cli, }); - - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual( - `Type w3 help to view common commands\n` - ); + expect(code).toEqual(1); + expect(clearStyle(error)).toBe(clearStyle(HELP)); + expect(output).toEqual(``); }); -}); +}); \ No newline at end of file diff --git a/packages/cli/src/__tests__/e2e/plugin.spec.ts b/packages/cli/src/__tests__/e2e/plugin.spec.ts index 1c7ad8f7f1..8c5edd3ed0 100644 --- a/packages/cli/src/__tests__/e2e/plugin.spec.ts +++ b/packages/cli/src/__tests__/e2e/plugin.spec.ts @@ -1,131 +1,131 @@ -import path from "path"; -import { defaultPluginManifest } from "../../lib"; -import { clearStyle } from "./utils"; - -import { runCLI } from "@web3api/test-env-js"; -import { compareSync } from "dir-compare"; - -const HELP = ` -w3 plugin command [options] - -Commands: - codegen Generate code for the plugin - -Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API Plugin manifest file (default: ${defaultPluginManifest.join( - " | " - )}) - -p, --publish-dir Output path for the built schema and manifest (default: ./build) - -c, --codegen-dir Output directory for the generated types (default: ./src/w3) - -i, --ipfs [] IPFS node to load external schemas (default: dev-server's node) - -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) - -`; - -describe("e2e tests for plugin command", () => { - const projectRoot = path.resolve(__dirname, "../plugin/"); - - test("Should show help text", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["plugin", "codegen", "--help"], - cwd: projectRoot, - } - ); - - expect(code).toEqual(0); - expect(clearStyle(output)).toEqual(HELP); - }); - - test("Should throw error for invalid params - no command", async () => { - const { exitCode: code, stdout: output } = await runCLI( - { - args: ["plugin", "--codegen-dir"], - cwd: projectRoot, - } - ); - - expect(code).toEqual(1); - expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); - }); - - test("Should throw error for invalid params - publish-dir", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["plugin", "codegen", "--publish-dir"], - cwd: projectRoot, - } - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual("--publish-dir option missing argument\n" + HELP); - }); - - test("Should throw error for invalid params - codegen-dir", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["plugin", "codegen", "--codegen-dir"], - cwd: projectRoot, - } - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--codegen-dir option missing argument -${HELP}`); - }); - - test("Should throw error for invalid params - ens", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["plugin", "codegen", "--ens"], - cwd: projectRoot, - } - ); - - expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--ens option missing [
] argument -${HELP}`); - }); - - test("Should successfully generate types", async () => { - const { exitCode: code, stdout: output, stderr: error } = await runCLI( - { - args: ["plugin", "codegen"], - cwd: projectRoot, - } - ); - - expect(error).toBe(""); - expect(code).toEqual(0); - expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.plugin.yaml -✔ Manifest loaded from ./web3api.plugin.yaml -- Generate types -✔ Generate types -- Manifest written to ./build/web3api.plugin.json -✔ Manifest written to ./build/web3api.plugin.json -`); - - const expectedTypesResult = compareSync( - `${projectRoot}/src/w3`, - `${projectRoot}/expected-types`, - { compareContent: true } - ); - - expect(expectedTypesResult.differences).toBe(0); - - const expectedBuildResult = compareSync( - `${projectRoot}/build`, - `${projectRoot}/expected-build`, - { compareContent: true } - ); - - expect(expectedBuildResult.differences).toBe(0); - }); -}); +// import path from "path"; +// import { defaultPluginManifest } from "../../lib"; +// import { clearStyle } from "./utils"; + +// import { runCLI } from "@web3api/test-env-js"; +// import { compareSync } from "dir-compare"; + +// const HELP = ` +// w3 plugin command [options] + +// Commands: +// codegen Generate code for the plugin + +// Options: +// -h, --help Show usage information +// -m, --manifest-file Path to the Web3API Plugin manifest file (default: ${defaultPluginManifest.join( +// " | " +// )}) +// -p, --publish-dir Output path for the built schema and manifest (default: ./build) +// -c, --codegen-dir Output directory for the generated types (default: ./src/w3) +// -i, --ipfs [] IPFS node to load external schemas (default: dev-server's node) +// -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) + +// `; + +// describe("e2e tests for plugin command", () => { +// const projectRoot = path.resolve(__dirname, "../plugin/"); + +// test("Should show help text", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["plugin", "codegen", "--help"], +// cwd: projectRoot, +// } +// ); + +// expect(code).toEqual(0); +// expect(clearStyle(output)).toEqual(HELP); +// }); + +// test("Should throw error for invalid params - no command", async () => { +// const { exitCode: code, stdout: output } = await runCLI( +// { +// args: ["plugin", "--codegen-dir"], +// cwd: projectRoot, +// } +// ); + +// expect(code).toEqual(1); +// expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); +// }); + +// test("Should throw error for invalid params - publish-dir", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["plugin", "codegen", "--publish-dir"], +// cwd: projectRoot, +// } +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual("--publish-dir option missing argument\n" + HELP); +// }); + +// test("Should throw error for invalid params - codegen-dir", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["plugin", "codegen", "--codegen-dir"], +// cwd: projectRoot, +// } +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--codegen-dir option missing argument +// ${HELP}`); +// }); + +// test("Should throw error for invalid params - ens", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["plugin", "codegen", "--ens"], +// cwd: projectRoot, +// } +// ); + +// expect(code).toEqual(1); +// expect(error).toBe(""); +// expect(clearStyle(output)) +// .toEqual(`--ens option missing [
] argument +// ${HELP}`); +// }); + +// test("Should successfully generate types", async () => { +// const { exitCode: code, stdout: output, stderr: error } = await runCLI( +// { +// args: ["plugin", "codegen"], +// cwd: projectRoot, +// } +// ); + +// expect(error).toBe(""); +// expect(code).toEqual(0); +// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.plugin.yaml +// ✔ Manifest loaded from ./web3api.plugin.yaml +// - Generate types +// ✔ Generate types +// - Manifest written to ./build/web3api.plugin.json +// ✔ Manifest written to ./build/web3api.plugin.json +// `); + +// const expectedTypesResult = compareSync( +// `${projectRoot}/src/w3`, +// `${projectRoot}/expected-types`, +// { compareContent: true } +// ); + +// expect(expectedTypesResult.differences).toBe(0); + +// const expectedBuildResult = compareSync( +// `${projectRoot}/build`, +// `${projectRoot}/expected-build`, +// { compareContent: true } +// ); + +// expect(expectedBuildResult.differences).toBe(0); +// }); +// }); diff --git a/packages/cli/src/__tests__/e2e/query.spec.ts b/packages/cli/src/__tests__/e2e/query.spec.ts index 6f782bc15a..35334bd376 100644 --- a/packages/cli/src/__tests__/e2e/query.spec.ts +++ b/packages/cli/src/__tests__/e2e/query.spec.ts @@ -1,188 +1,188 @@ -import fs from "fs"; -import path from "path"; -import yaml from "js-yaml"; - -import { clearStyle, w3Cli } from "./utils"; - -import { runCLI } from "@web3api/test-env-js"; -import { normalizeLineEndings } from "@web3api/os-js"; -import { - checkSampleQueryOutput, - getSampleOutputWithClientConfig, - ISampleOutputOptions, -} from "./query.spec.helper"; - -const HELP = ` -w3 query [options] - -Options: - -t, --test-ens Use the development server's ENS instance - -c, --client-config Add custom configuration to the Web3ApiClient - -`; - -const projectRoot = path.resolve(__dirname, "../project/"); - -describe("sanity tests for query command", () => { - test("Should throw error for missing recipe-string", async () => { - const { exitCode, stdout, stderr } = await runCLI({ - args: ["query"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(exitCode).toEqual(0); - expect(stderr).toBe(""); - expect(clearStyle(stdout)) - .toEqual(`Required argument is missing -${HELP}`); - }); - - test("Should throw error is --client-config doesn't contain arguments", async () => { - const { exitCode, stdout, stderr } = await runCLI({ - args: ["query", "./recipes/e2e.json", "--client-config"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(exitCode).toEqual(0); - expect(stderr).toBe(""); - expect(clearStyle(stdout)) - .toEqual(`--client-config option missing argument -${HELP}`); - }); -}); - -describe("e2e tests for query command", () => { - beforeAll(async () => { - const { exitCode: testenvCode, stderr: testEnvUpErr } = await runCLI({ - args: ["test-env", "up"], - cwd: projectRoot, - cli: w3Cli, - }); - expect(testEnvUpErr).toBe(""); - expect(testenvCode).toEqual(0); - - const { stderr: deployErr } = await runCLI({ - args: ["./deploy-contracts.js"], - cwd: projectRoot, - cli: " ", - }); - - expect(deployErr).toBe(""); - - const { exitCode: buildCode, stderr: buildErr } = await runCLI({ - args: [ - "build", - "--ipfs", - "http://localhost:5001", - "--test-ens", - "simplestorage.eth", - ], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(buildErr).toBe(""); - expect(buildCode).toEqual(0); - }); - - afterAll(async () => { - await runCLI({ - args: ["test-env", "down"], - cwd: projectRoot, - cli: w3Cli, - }); - }); - - test("Should use custom config for client if specified", async () => { - const configs = ["./client-config.ts", "./client-config.js"]; - - for (const config of configs) { - const { exitCode, stdout, stderr } = await runCLI({ - args: [ - "query", - "./recipes/e2e.json", - "--test-ens", - "--client-config", - config, - ], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(stderr).toBeFalsy(); - expect(stdout).toBeTruthy(); - - expect(exitCode).toEqual(0); - expect(stderr).toBe(""); - - const constants = require(`${projectRoot}/recipes/constants.json`); - expect(clearStyle(normalizeLineEndings(stdout, "\n"))).toContain( - getSampleOutputWithClientConfig({ - SimpleStorageAddr: constants.SimpleStorageAddr, - }) - ); - } - }, 48000); - - test("Should successfully return response: using json recipes", async () => { - const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ - args: ["query", "./recipes/e2e.json", "--test-ens"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(queryErr).toBe(""); - - const constants = require(`${projectRoot}/recipes/constants.json`); - checkSampleQueryOutput(output, { - SimpleStorageAddr: constants.SimpleStorageAddr, - }); - }, 480000); - - test("Should successfully return response: using yaml recipes", async () => { - const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ - args: ["query", "./recipes/e2e.yaml", "--test-ens"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(queryErr).toBe(""); - - const constants = yaml.load( - await fs.promises.readFile( - `${projectRoot}/recipes/constants.yaml`, - "utf8" - ) - ) as ISampleOutputOptions; - - checkSampleQueryOutput(output, { - SimpleStorageAddr: constants.SimpleStorageAddr, - }); - }, 480000); - - test("Should successfully return response: using mix of yaml & json recipes", async () => { - const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ - args: ["query", "./recipes/e2e.json", "--test-ens"], - cwd: projectRoot, - cli: w3Cli, - }); - - expect(code).toEqual(0); - expect(queryErr).toBe(""); - - const constants = yaml.load( - await fs.promises.readFile( - `${projectRoot}/recipes/constants.yaml`, - "utf8" - ) - ) as ISampleOutputOptions; - - checkSampleQueryOutput(output, { - SimpleStorageAddr: constants.SimpleStorageAddr, - }); - }, 480000); -}); +// import fs from "fs"; +// import path from "path"; +// import yaml from "js-yaml"; + +// import { clearStyle, w3Cli } from "./utils"; + +// import { runCLI } from "@web3api/test-env-js"; +// import { normalizeLineEndings } from "@web3api/os-js"; +// import { +// checkSampleQueryOutput, +// getSampleOutputWithClientConfig, +// ISampleOutputOptions, +// } from "./query.spec.helper"; + +// const HELP = ` +// w3 query [options] + +// Options: +// -t, --test-ens Use the development server's ENS instance +// -c, --client-config Add custom configuration to the Web3ApiClient + +// `; + +// const projectRoot = path.resolve(__dirname, "../project/"); + +// describe("sanity tests for query command", () => { +// test("Should throw error for missing recipe-string", async () => { +// const { exitCode, stdout, stderr } = await runCLI({ +// args: ["query"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(exitCode).toEqual(0); +// expect(stderr).toBe(""); +// expect(clearStyle(stdout)) +// .toEqual(`Required argument is missing +// ${HELP}`); +// }); + +// test("Should throw error is --client-config doesn't contain arguments", async () => { +// const { exitCode, stdout, stderr } = await runCLI({ +// args: ["query", "./recipes/e2e.json", "--client-config"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(exitCode).toEqual(0); +// expect(stderr).toBe(""); +// expect(clearStyle(stdout)) +// .toEqual(`--client-config option missing argument +// ${HELP}`); +// }); +// }); + +// describe("e2e tests for query command", () => { +// beforeAll(async () => { +// const { exitCode: testenvCode, stderr: testEnvUpErr } = await runCLI({ +// args: ["test-env", "up"], +// cwd: projectRoot, +// cli: w3Cli, +// }); +// expect(testEnvUpErr).toBe(""); +// expect(testenvCode).toEqual(0); + +// const { stderr: deployErr } = await runCLI({ +// args: ["./deploy-contracts.js"], +// cwd: projectRoot, +// cli: " ", +// }); + +// expect(deployErr).toBe(""); + +// const { exitCode: buildCode, stderr: buildErr } = await runCLI({ +// args: [ +// "build", +// "--ipfs", +// "http://localhost:5001", +// "--test-ens", +// "simplestorage.eth", +// ], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(buildErr).toBe(""); +// expect(buildCode).toEqual(0); +// }); + +// afterAll(async () => { +// await runCLI({ +// args: ["test-env", "down"], +// cwd: projectRoot, +// cli: w3Cli, +// }); +// }); + +// test("Should use custom config for client if specified", async () => { +// const configs = ["./client-config.ts", "./client-config.js"]; + +// for (const config of configs) { +// const { exitCode, stdout, stderr } = await runCLI({ +// args: [ +// "query", +// "./recipes/e2e.json", +// "--test-ens", +// "--client-config", +// config, +// ], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(stderr).toBeFalsy(); +// expect(stdout).toBeTruthy(); + +// expect(exitCode).toEqual(0); +// expect(stderr).toBe(""); + +// const constants = require(`${projectRoot}/recipes/constants.json`); +// expect(clearStyle(normalizeLineEndings(stdout, "\n"))).toContain( +// getSampleOutputWithClientConfig({ +// SimpleStorageAddr: constants.SimpleStorageAddr, +// }) +// ); +// } +// }, 48000); + +// test("Should successfully return response: using json recipes", async () => { +// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ +// args: ["query", "./recipes/e2e.json", "--test-ens"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(0); +// expect(queryErr).toBe(""); + +// const constants = require(`${projectRoot}/recipes/constants.json`); +// checkSampleQueryOutput(output, { +// SimpleStorageAddr: constants.SimpleStorageAddr, +// }); +// }, 480000); + +// test("Should successfully return response: using yaml recipes", async () => { +// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ +// args: ["query", "./recipes/e2e.yaml", "--test-ens"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(0); +// expect(queryErr).toBe(""); + +// const constants = yaml.load( +// await fs.promises.readFile( +// `${projectRoot}/recipes/constants.yaml`, +// "utf8" +// ) +// ) as ISampleOutputOptions; + +// checkSampleQueryOutput(output, { +// SimpleStorageAddr: constants.SimpleStorageAddr, +// }); +// }, 480000); + +// test("Should successfully return response: using mix of yaml & json recipes", async () => { +// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ +// args: ["query", "./recipes/e2e.json", "--test-ens"], +// cwd: projectRoot, +// cli: w3Cli, +// }); + +// expect(code).toEqual(0); +// expect(queryErr).toBe(""); + +// const constants = yaml.load( +// await fs.promises.readFile( +// `${projectRoot}/recipes/constants.yaml`, +// "utf8" +// ) +// ) as ISampleOutputOptions; + +// checkSampleQueryOutput(output, { +// SimpleStorageAddr: constants.SimpleStorageAddr, +// }); +// }, 480000); +// }); diff --git a/packages/cli/src/__tests__/project/recipes/constants.json b/packages/cli/src/__tests__/project/recipes/constants.json index f0e2cde668..64341d86d9 100644 --- a/packages/cli/src/__tests__/project/recipes/constants.json +++ b/packages/cli/src/__tests__/project/recipes/constants.json @@ -1,3 +1,3 @@ { - "SimpleStorageAddr": "0x3521eF8AaB0323004A6dD8b03CE890F4Ea3A13f5" + "SimpleStorageAddr": "0x58F132FBB86E21545A4Bace3C19f1C05d86d7A22" } \ No newline at end of file diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index 6f73167a5b..d62f8c2775 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -1,4 +1,3 @@ -// TODO build refactor import { Command, Program } from "./types"; import { // Compiler, diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index e55f85c436..b032c529ef 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -1,197 +1,228 @@ -/* eslint-disable prefer-const */ +import { Command, Program } from "./types"; import { - CodeGenerator, - Compiler, - Web3ApiProject, - SchemaComposer, - intlMsg, - defaultWeb3ApiManifest, - getTestEnvProviders, - resolvePathIfExists, - } from "../lib"; - - import chalk from "chalk"; - import path from "path"; - import { GluegunToolbox, GluegunPrint } from "gluegun"; - - const defaultCodegenDir = "./w3"; - const optionsStr = intlMsg.commands_options_options(); - const nodeStr = intlMsg.commands_codegen_options_i_node(); - const pathStr = intlMsg.commands_codegen_options_o_path(); - const addrStr = intlMsg.commands_codegen_options_e_address(); - const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); - - const HELP = ` - ${chalk.bold("w3 codegen")} [${optionsStr}] - - ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: - -h, --help ${intlMsg.commands_codegen_options_h()} - -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( - { - default: defaultManifestStr, - } - )} - -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( - { - default: defaultCodegenDir, - } - )} - -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} - -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} - -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} - `; - - export default { - alias: ["g"], - description: intlMsg.commands_codegen_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters, print } = toolbox; - - // Options - const { h, m, c, s, i, e } = parameters.options; - let { - help, - manifestFile, - codegenDir, - script, - ipfs, - ens, - } = parameters.options; - - help = help || h; - manifestFile = manifestFile || m; - codegenDir = codegenDir || c; - script = script || s; - ipfs = ipfs || i; - ens = ens || e; - - // Validate Params - const paramsValid = validateCodegenParams( - print, - codegenDir, - (dir: string) => (codegenDir = dir), - script, - ipfs, - ens - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); - const ensAddress: string | undefined = ens; - - // Resolve manifest file - manifestFile = resolvePathIfExists( - filesystem, - manifestFile ? [manifestFile] : defaultWeb3ApiManifest - ); - codegenDir = codegenDir && filesystem.resolve(codegenDir); - script = script && filesystem.resolve(script); - - // Web3Api Project - const project = new Web3ApiProject({ - rootCacheDir: path.dirname(manifestFile), - web3apiManifestPath: manifestFile, - }); - await project.validate(); - - const schemaComposer = new SchemaComposer({ - project, - ipfsProvider, - ethProvider, - ensAddress, - }); - - let result = false; - - if (script) { - const codeGenerator = new CodeGenerator({ - project, - schemaComposer, - customScript: script, - outputDir: codegenDir, - }); - - result = await codeGenerator.generate(); - } else { - const compiler = new Compiler({ - project, - outputDir: filesystem.path("build"), - schemaComposer, - }); - - result = await compiler.codegen(); - } - - if (result) { - print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); - process.exitCode = 0; - } else { - process.exitCode = 1; - } - }, - }; - - function validateCodegenParams( - print: GluegunPrint, - codegenDir: unknown, - setCodegenDir: (dir: string) => void, - script: unknown, - ipfs: unknown, - ens: unknown - ): boolean { - if (codegenDir === true) { - const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( + // CodeGenerator, + // Compiler, + // Web3ApiProject, + // SchemaComposer, + intlMsg, + defaultWeb3ApiManifest, + // getTestEnvProviders, + // resolvePathIfExists, +} from "../lib"; + +// import chalk from "chalk"; +// import path from "path"; +// import { GluegunToolbox, GluegunPrint } from "gluegun"; + +const defaultCodegenDir = "./w3"; +// const optionsStr = intlMsg.commands_options_options(); +const nodeStr = intlMsg.commands_codegen_options_i_node(); +const pathStr = intlMsg.commands_codegen_options_o_path(); +const addrStr = intlMsg.commands_codegen_options_e_address(); +const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); + +// const HELP = ` +// ${chalk.bold("w3 codegen")} [${optionsStr}] + +// ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: +// -h, --help ${intlMsg.commands_codegen_options_h()} +// -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( +// { +// default: defaultManifestStr, +// } +// )} +// -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( +// { +// default: defaultCodegenDir, +// } +// )} +// -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} +// -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} +// -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} +// `; + +export const codegen: Command = { + setup: (program: Program) => { + program + .command("codegen") + .alias("g") + .description(intlMsg.commands_codegen_description()) + .option(`-m, --manifest-file <${pathStr}>`, `${intlMsg.commands_codegen_options_m( { - option: "--codegen-dir", - argument: `<${pathStr}>`, + default: defaultManifestStr, } - ); - print.error(codegenDirMessage); - return false; - } else if (!codegenDir) { - setCodegenDir(defaultCodegenDir); - } - - if (script === true) { - const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( + )}`) + .option(`-c, --codegen-dir <${pathStr}>`, ` ${intlMsg.commands_codegen_options_codegen( { - option: "--script", - argument: `<${pathStr}>`, + default: defaultCodegenDir, } - ); - print.error(customScriptMissingPathMessage); - return false; - } - - if (ipfs === true) { - const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--ipfs", - argument: `[<${nodeStr}>]`, - } - ); - print.error(ipfsMissingMessage); - return false; - } - - if (ens === true) { - const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( - { - option: "--ens", - argument: `[<${addrStr}>]`, - } - ); - print.error(ensAddressMissingMessage); - return false; - } - - return true; + )}`) + .option(`-s, --script <${pathStr}>`, `${intlMsg.commands_codegen_options_s()}`) + .option(`-i, --ipfs [<${nodeStr}>]`, `${intlMsg.commands_codegen_options_i()}`) + .option(`-e, --ens [<${addrStr}>]`, `${intlMsg.commands_codegen_options_e()}`) + .action(async (options) => { + await run(options); + }); } - \ No newline at end of file +} + +async function run(options: any) { + +} + + + + +// export default { +// alias: ["g"], +// description: intlMsg.commands_codegen_description(), +// run: async (toolbox: GluegunToolbox): Promise => { +// const { filesystem, parameters, print } = toolbox; + +// // Options +// const { h, m, c, s, i, e } = parameters.options; +// let { +// help, +// manifestFile, +// codegenDir, +// script, +// ipfs, +// ens, +// } = parameters.options; + +// help = help || h; +// manifestFile = manifestFile || m; +// codegenDir = codegenDir || c; +// script = script || s; +// ipfs = ipfs || i; +// ens = ens || e; + +// // Validate Params +// const paramsValid = validateCodegenParams( +// print, +// codegenDir, +// (dir: string) => (codegenDir = dir), +// script, +// ipfs, +// ens +// ); + +// if (help || !paramsValid) { +// print.info(HELP); +// if (!paramsValid) { +// process.exitCode = 1; +// } +// return; +// } + +// const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); +// const ensAddress: string | undefined = ens; + +// // Resolve manifest file +// manifestFile = resolvePathIfExists( +// filesystem, +// manifestFile ? [manifestFile] : defaultWeb3ApiManifest +// ); +// codegenDir = codegenDir && filesystem.resolve(codegenDir); +// script = script && filesystem.resolve(script); + +// // Web3Api Project +// const project = new Web3ApiProject({ +// rootCacheDir: path.dirname(manifestFile), +// web3apiManifestPath: manifestFile, +// }); +// await project.validate(); + +// const schemaComposer = new SchemaComposer({ +// project, +// ipfsProvider, +// ethProvider, +// ensAddress, +// }); + +// let result = false; + +// if (script) { +// const codeGenerator = new CodeGenerator({ +// project, +// schemaComposer, +// customScript: script, +// outputDir: codegenDir, +// }); + +// result = await codeGenerator.generate(); +// } else { +// const compiler = new Compiler({ +// project, +// outputDir: filesystem.path("build"), +// schemaComposer, +// }); + +// result = await compiler.codegen(); +// } + +// if (result) { +// print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); +// process.exitCode = 0; +// } else { +// process.exitCode = 1; +// } +// }, +// }; + +// function validateCodegenParams( +// print: GluegunPrint, +// codegenDir: unknown, +// setCodegenDir: (dir: string) => void, +// script: unknown, +// ipfs: unknown, +// ens: unknown +// ): boolean { +// if (codegenDir === true) { +// const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( +// { +// option: "--codegen-dir", +// argument: `<${pathStr}>`, +// } +// ); +// print.error(codegenDirMessage); +// return false; +// } else if (!codegenDir) { +// setCodegenDir(defaultCodegenDir); +// } + +// if (script === true) { +// const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( +// { +// option: "--script", +// argument: `<${pathStr}>`, +// } +// ); +// print.error(customScriptMissingPathMessage); +// return false; +// } + +// if (ipfs === true) { +// const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( +// { +// option: "--ipfs", +// argument: `[<${nodeStr}>]`, +// } +// ); +// print.error(ipfsMissingMessage); +// return false; +// } + +// if (ens === true) { +// const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( +// { +// option: "--ens", +// argument: `[<${addrStr}>]`, +// } +// ); +// print.error(ensAddressMissingMessage); +// return false; +// } + +// return true; +// } diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts index 62f7c18252..b6285628d0 100644 --- a/packages/cli/src/commands/create.ts +++ b/packages/cli/src/commands/create.ts @@ -1,11 +1,18 @@ -import { generateProjectTemplate, fixParameters, intlMsg } from "../lib"; +import { Command, Program } from "./types"; +import { + //generateProjectTemplate, + //fixParameters, + intlMsg +} from "../lib"; -import chalk from "chalk"; -import { GluegunToolbox, GluegunPrint } from "gluegun"; -const cmdStr = intlMsg.commands_create_options_command(); -const nameStr = intlMsg.commands_create_options_projectName(); -const optionsStr = intlMsg.commands_options_options(); + +// import chalk from "chalk"; +// import { GluegunToolbox, GluegunPrint } from "gluegun"; + +// const cmdStr = intlMsg.commands_create_options_command(); +// const nameStr = intlMsg.commands_create_options_projectName(); +// const optionsStr = intlMsg.commands_options_options(); const langStr = intlMsg.commands_create_options_lang(); const langsStr = intlMsg.commands_create_options_langs(); const createProjStr = intlMsg.commands_create_options_createProject(); @@ -13,167 +20,221 @@ const createAppStr = intlMsg.commands_create_options_createApp(); const createPluginStr = intlMsg.commands_create_options_createPlugin(); const pathStr = intlMsg.commands_create_options_o_path(); -export const supportedLangs: { [key: string]: string[] } = { + +const supportedLangs: { [key: string]: string[] } = { api: ["assemblyscript", "interface"], app: ["typescript-node", "typescript-react"], plugin: ["typescript"], }; -const HELP = ` -${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] - -${intlMsg.commands_create_options_commands()}: - ${chalk.bold("api")} <${langStr}> ${createProjStr} - ${langsStr}: ${supportedLangs.api.join(", ")} - ${chalk.bold("app")} <${langStr}> ${createAppStr} - ${langsStr}: ${supportedLangs.app.join(", ")} - ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} - ${langsStr}: ${supportedLangs.plugin.join(", ")} - -Options: - -h, --help ${intlMsg.commands_create_options_h()} - -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} -`; - -export default { - alias: ["c"], - description: intlMsg.commands_create_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { parameters, print, prompt, filesystem } = toolbox; - - // Options - let { help, outputDir } = parameters.options; - const { h, o } = parameters.options; - - help = help || h; - outputDir = outputDir || o; - - let type = ""; - let lang = ""; - let name = ""; - try { - const params = parameters; - [type, lang, name] = fixParameters( - { - options: params.options, - array: params.array, - }, - { - h, - help, - } - ); - // eslint-disable-next-line no-empty - } catch (e) {} - - // Validate Params - const paramsValid = validateCreateParams( - print, - type, - lang, - name, - outputDir - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const projectDir = outputDir ? `${outputDir}/${name}` : name; - - // check if project already exists - if (!filesystem.exists(projectDir)) { - print.newline(); - print.info(intlMsg.commands_create_settingUp()); - } else { - const directoryExistsMessage = intlMsg.commands_create_directoryExists({ - dir: projectDir, +export const create: Command = { + setup: (program: Program) => { + + const createCommand = program + .command("create") + .alias("c") + .description(intlMsg.commands_create_description()) + + + + createCommand + .command(`api <${langStr}>`) + .description(`${createProjStr} ${langsStr}: ${supportedLangs.api.join(", ")}`) + .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) + .action(async (langStr, options) => { + await run("api", langStr, options); }); - print.info(directoryExistsMessage); - const overwrite = await prompt.confirm( - intlMsg.commands_create_overwritePrompt() - ); - if (overwrite) { - const overwritingMessage = intlMsg.commands_create_overwriting({ - dir: projectDir, - }); - print.info(overwritingMessage); - filesystem.remove(projectDir); - } else { - process.exit(8); - } - } - - generateProjectTemplate(type, lang, projectDir, filesystem) - .then(() => { - print.newline(); - let readyMessage; - if (type === "api") { - readyMessage = intlMsg.commands_create_readyProtocol(); - } else if (type === "app") { - readyMessage = intlMsg.commands_create_readyApp(); - } else if (type === "plugin") { - readyMessage = intlMsg.commands_create_readyPlugin(); - } - print.info(`🔥 ${readyMessage} 🔥`); - }) - .catch((err) => { - const commandFailError = intlMsg.commands_create_error_commandFail({ - error: err.command, - }); - print.error(commandFailError); + + createCommand + .command(`app <${langStr}>`) + .description(`${createAppStr} ${langsStr}: ${supportedLangs.app.join(", ")}`) + .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) + .action(async (langStr, options) => { + await run("app", langStr, options); }); - }, -}; -function validateCreateParams( - print: GluegunPrint, - type: unknown, - lang: unknown, - name: unknown, - outputDir: unknown -): boolean { - if (!type || typeof type !== "string") { - print.error(intlMsg.commands_create_error_noCommand()); - return false; - } + createCommand + .command(`plugin <${langStr}>`) + .description(`${createPluginStr} ${langsStr}: ${supportedLangs.plugin.join(", ")}`) + .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) + .action(async (langStr, options) => { + await run("plugin", langStr, options); + }); - if (!lang || typeof lang !== "string") { - print.error(intlMsg.commands_create_error_noLang()); - return false; - } - if (!name || typeof name !== "string") { - print.error(intlMsg.commands_create_error_noName()); - return false; - } - if (!supportedLangs[type]) { - const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); - print.error(`${unrecognizedCommand} "${type}"`); - return false; - } - if (supportedLangs[type].indexOf(lang) === -1) { - const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); - print.error(`${unrecognizedLanguage} "${lang}"`); - return false; - } - if (outputDir === true) { - const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( - { - option: "--output-dir", - argument: `<${pathStr}>`, - } - ); - print.error(outputDirMissingPathMessage); - return false; } +} + +async function run(command: "api" | "app" | "plugin", langStr:any, options: any) { - return true; + + console.log(command, langStr, options) } + +// export const supportedLangs: { [key: string]: string[] } = { +// api: ["assemblyscript", "interface"], +// app: ["typescript-node", "typescript-react"], +// plugin: ["typescript"], +// }; + +// const HELP = ` +// ${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] + +// ${intlMsg.commands_create_options_commands()}: +// ${chalk.bold("api")} <${langStr}> ${createProjStr} +// ${langsStr}: ${supportedLangs.api.join(", ")} +// ${chalk.bold("app")} <${langStr}> ${createAppStr} +// ${langsStr}: ${supportedLangs.app.join(", ")} +// ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} +// ${langsStr}: ${supportedLangs.plugin.join(", ")} + +// Options: +// -h, --help ${intlMsg.commands_create_options_h()} +// -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} +// `; + +// export default { +// alias: ["c"], +// description: intlMsg.commands_create_description(), +// run: async (toolbox: GluegunToolbox): Promise => { +// const { parameters, print, prompt, filesystem } = toolbox; + +// // Options +// let { help, outputDir } = parameters.options; +// const { h, o } = parameters.options; + +// help = help || h; +// outputDir = outputDir || o; + +// let type = ""; +// let lang = ""; +// let name = ""; +// try { +// const params = parameters; +// [type, lang, name] = fixParameters( +// { +// options: params.options, +// array: params.array, +// }, +// { +// h, +// help, +// } +// ); +// // eslint-disable-next-line no-empty +// } catch (e) {} + +// // Validate Params +// const paramsValid = validateCreateParams( +// print, +// type, +// lang, +// name, +// outputDir +// ); + +// if (help || !paramsValid) { +// print.info(HELP); +// if (!paramsValid) { +// process.exitCode = 1; +// } +// return; +// } + +// const projectDir = outputDir ? `${outputDir}/${name}` : name; + +// // check if project already exists +// if (!filesystem.exists(projectDir)) { +// print.newline(); +// print.info(intlMsg.commands_create_settingUp()); +// } else { +// const directoryExistsMessage = intlMsg.commands_create_directoryExists({ +// dir: projectDir, +// }); +// print.info(directoryExistsMessage); +// const overwrite = await prompt.confirm( +// intlMsg.commands_create_overwritePrompt() +// ); +// if (overwrite) { +// const overwritingMessage = intlMsg.commands_create_overwriting({ +// dir: projectDir, +// }); +// print.info(overwritingMessage); +// filesystem.remove(projectDir); +// } else { +// process.exit(8); +// } +// } + +// generateProjectTemplate(type, lang, projectDir, filesystem) +// .then(() => { +// print.newline(); +// let readyMessage; +// if (type === "api") { +// readyMessage = intlMsg.commands_create_readyProtocol(); +// } else if (type === "app") { +// readyMessage = intlMsg.commands_create_readyApp(); +// } else if (type === "plugin") { +// readyMessage = intlMsg.commands_create_readyPlugin(); +// } +// print.info(`🔥 ${readyMessage} 🔥`); +// }) +// .catch((err) => { +// const commandFailError = intlMsg.commands_create_error_commandFail({ +// error: err.command, +// }); +// print.error(commandFailError); +// }); +// }, +// }; + +// function validateCreateParams( +// print: GluegunPrint, +// type: unknown, +// lang: unknown, +// name: unknown, +// outputDir: unknown +// ): boolean { +// if (!type || typeof type !== "string") { +// print.error(intlMsg.commands_create_error_noCommand()); +// return false; +// } + +// if (!lang || typeof lang !== "string") { +// print.error(intlMsg.commands_create_error_noLang()); +// return false; +// } + +// if (!name || typeof name !== "string") { +// print.error(intlMsg.commands_create_error_noName()); +// return false; +// } + +// if (!supportedLangs[type]) { +// const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); +// print.error(`${unrecognizedCommand} "${type}"`); +// return false; +// } + +// if (supportedLangs[type].indexOf(lang) === -1) { +// const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); +// print.error(`${unrecognizedLanguage} "${lang}"`); +// return false; +// } + +// if (outputDir === true) { +// const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( +// { +// option: "--output-dir", +// argument: `<${pathStr}>`, +// } +// ); +// print.error(outputDirMissingPathMessage); +// return false; +// } + +// return true; +// } diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 29ee9c6b84..19b4dfdbf9 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -1,3 +1,6 @@ export * from "./app"; +// export * from "./build"; +export * from "./create"; +// export * from "./codegen"; export * from "./query"; export * from "./test-env"; \ No newline at end of file diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands/plugin.ts index 72ef0457c5..1eaf806896 100644 --- a/packages/cli/src/commands/plugin.ts +++ b/packages/cli/src/commands/plugin.ts @@ -1,36 +1,35 @@ -// TODO plugin refactor -/* eslint-disable prefer-const */ +import { Command, Program } from "./types"; import { - CodeGenerator, - PluginProject, - SchemaComposer, - fixParameters, - resolvePathIfExists, - defaultPluginManifest, - outputManifest, - intlMsg, - getTestEnvProviders, - } from "../lib"; - - import { ComposerFilter } from "@web3api/schema-compose"; - import { writeFileSync } from "@web3api/os-js"; - import { GluegunPrint, GluegunToolbox, print } from "gluegun"; - import chalk from "chalk"; - import path from "path"; - import fs from "fs"; - - const commands = ["codegen"]; - const defaultPublishDir = "./build"; - const defaultCodegenDir = "./src/w3"; - const cmdStr = intlMsg.commands_plugin_options_command(); - const optionsStr = intlMsg.commands_options_options(); - const codegenStr = intlMsg.commands_plugin_commands_codegen(); - const pathStr = intlMsg.commands_plugin_options_path(); - const defaultManifestStr = defaultPluginManifest.join(" | "); - const nodeStr = intlMsg.commands_plugin_options_i_node(); - const addrStr = intlMsg.commands_plugin_options_e_address(); - - const HELP = ` + CodeGenerator, + PluginProject, + SchemaComposer, + fixParameters, + resolvePathIfExists, + defaultPluginManifest, + outputManifest, + intlMsg, + getTestEnvProviders, +} from "../lib"; + +import { ComposerFilter } from "@web3api/schema-compose"; +import { writeFileSync } from "@web3api/os-js"; +import { GluegunPrint, GluegunToolbox, print } from "gluegun"; +import chalk from "chalk"; +import path from "path"; +import fs from "fs"; + +const commands = ["codegen"]; +const defaultPublishDir = "./build"; +const defaultCodegenDir = "./src/w3"; +const cmdStr = intlMsg.commands_plugin_options_command(); +const optionsStr = intlMsg.commands_options_options(); +const codegenStr = intlMsg.commands_plugin_commands_codegen(); +const pathStr = intlMsg.commands_plugin_options_path(); +const defaultManifestStr = defaultPluginManifest.join(" | "); +const nodeStr = intlMsg.commands_plugin_options_i_node(); +const addrStr = intlMsg.commands_plugin_options_e_address(); + +const HELP = ` ${chalk.bold("w3 plugin")} ${cmdStr} [${optionsStr}] Commands: @@ -39,207 +38,217 @@ import { Options: -h, --help ${intlMsg.commands_plugin_options_h()} -m, --manifest-file <${pathStr}> ${intlMsg.commands_plugin_options_m({ - default: defaultManifestStr, - })} + default: defaultManifestStr, +})} -p, --publish-dir <${pathStr}> ${intlMsg.commands_plugin_options_publish({ - default: defaultPublishDir, - })} + default: defaultPublishDir, +})} -c, --codegen-dir <${pathStr}> ${intlMsg.commands_plugin_options_codegen({ - default: defaultCodegenDir, - })} + default: defaultCodegenDir, +})} -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_plugin_options_i()} -e, --ens [<${addrStr}>] ${intlMsg.commands_plugin_options_e()} `; - - export default { - alias: ["p"], - description: intlMsg.commands_plugin_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters } = toolbox; - - // Options - let { - help, - manifestFile, - publishDir, - codegenDir, - ipfs, - ens, - } = parameters.options; - const { h, m, p, c, i, e } = parameters.options; - - help = help || h; - manifestFile = manifestFile || m; - publishDir = publishDir || p; - codegenDir = codegenDir || c; - ipfs = ipfs || i; - ens = ens || e; - - // Command - let command: string | undefined; - try { - const params = parameters; - [command] = fixParameters( - { - options: params.options, - array: params.array, - }, - { - h, - help, - } - ); - // eslint-disable-next-line no-empty - } catch (e) {} - - // Validate Params - const paramsValid = validatePluginParams( - print, - command, - publishDir, - (dir) => (publishDir = dir), - codegenDir, - (dir) => (codegenDir = dir), - ipfs, - ens - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); - const ensAddress: string | undefined = ens; - - manifestFile = resolvePathIfExists( - filesystem, - manifestFile ? [manifestFile] : defaultPluginManifest - ); - publishDir = publishDir && filesystem.resolve(publishDir); - codegenDir = codegenDir && filesystem.resolve(codegenDir); - - // Plugin project - const project = new PluginProject({ - rootCacheDir: path.dirname(manifestFile), - pluginManifestPath: manifestFile, - }); - await project.validate(); - const manifest = await project.getManifest(); - - const schemaComposer = new SchemaComposer({ - project, - ipfsProvider, - ethProvider, - ensAddress, - }); - - let result = false; - - const codeGenerator = new CodeGenerator({ - project, - schemaComposer, - outputDir: codegenDir, - }); - - result = await codeGenerator.generate(); - - if (result) { - process.exitCode = 0; - } else { - process.exitCode = 1; - } - - // Output the built schema & manifest - const schemas = await schemaComposer.getComposedSchemas( - ComposerFilter.Schema - ); - const publishSchemaPath = path.join(publishDir, "schema.graphql"); - const publishManifestPath = path.join(publishDir, "web3api.plugin.json"); - - if (!fs.existsSync(publishDir)) { - fs.mkdirSync(publishDir); - } - - writeFileSync(publishSchemaPath, schemas.combined.schema); - await outputManifest(manifest, publishManifestPath); - }, - }; - - function validatePluginParams( - print: GluegunPrint, - command: unknown, - publishDir: unknown, - setPublishDir: (dir: string) => void, - codegenDir: unknown, - setCodegenDir: (dir: string) => void, - ipfs: unknown, - ens: unknown - ): boolean { - if (!command) { - print.error(intlMsg.commands_plugin_error_noCommand()); - return false; - } - - if (!command || typeof command !== "string") { - print.error(intlMsg.commands_plugin_error_noCommand()); - return false; - } else if (commands.indexOf(command) === -1) { - print.error(intlMsg.commands_plugin_error_unknownCommand({ command })); - return false; - } - - if (publishDir === true) { - const publishDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + + +export const plugin: Command = { + setup: (program: Program) => { + program + .command("plugin") + .alias("p") + + + } +} + +export default { + alias: ["p"], + description: intlMsg.commands_plugin_description(), + run: async (toolbox: GluegunToolbox): Promise => { + const { filesystem, parameters } = toolbox; + + // Options + let { + help, + manifestFile, + publishDir, + codegenDir, + ipfs, + ens, + } = parameters.options; + const { h, m, p, c, i, e } = parameters.options; + + help = help || h; + manifestFile = manifestFile || m; + publishDir = publishDir || p; + codegenDir = codegenDir || c; + ipfs = ipfs || i; + ens = ens || e; + + // Command + let command: string | undefined; + try { + const params = parameters; + [command] = fixParameters( { - option: "--publish-dir", - argument: `<${pathStr}>`, - } - ); - print.error(publishDirMessage); - return false; - } else if (!publishDir) { - setPublishDir(defaultPublishDir); - } - - if (codegenDir === true) { - const codegenDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + options: params.options, + array: params.array, + }, { - option: "--codegen-dir", - argument: `<${pathStr}>`, + h, + help, } ); - print.error(codegenDirMessage); - return false; - } else if (!codegenDir) { - setCodegenDir(defaultCodegenDir); + // eslint-disable-next-line no-empty + } catch (e) { } + + // Validate Params + const paramsValid = validatePluginParams( + print, + command, + publishDir, + (dir) => (publishDir = dir), + codegenDir, + (dir) => (codegenDir = dir), + ipfs, + ens + ); + + if (help || !paramsValid) { + print.info(HELP); + if (!paramsValid) { + process.exitCode = 1; + } + return; } - - if (ipfs === true) { - const ipfsMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--ipfs", - argument: `[<${nodeStr}>]`, - } - ); - print.error(ipfsMissingMessage); - return false; + + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultPluginManifest + ); + publishDir = publishDir && filesystem.resolve(publishDir); + codegenDir = codegenDir && filesystem.resolve(codegenDir); + + // Plugin project + const project = new PluginProject({ + rootCacheDir: path.dirname(manifestFile), + pluginManifestPath: manifestFile, + }); + await project.validate(); + const manifest = await project.getManifest(); + + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + + if (result) { + process.exitCode = 0; + } else { + process.exitCode = 1; } - - if (ens === true) { - const ensAddressMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--ens", - argument: `[<${addrStr}>]`, - } - ); - print.error(ensAddressMissingMessage); - return false; + + // Output the built schema & manifest + const schemas = await schemaComposer.getComposedSchemas( + ComposerFilter.Schema + ); + const publishSchemaPath = path.join(publishDir, "schema.graphql"); + const publishManifestPath = path.join(publishDir, "web3api.plugin.json"); + + if (!fs.existsSync(publishDir)) { + fs.mkdirSync(publishDir); } - - return true; + + writeFileSync(publishSchemaPath, schemas.combined.schema); + await outputManifest(manifest, publishManifestPath); + }, +}; + +function validatePluginParams( + print: GluegunPrint, + command: unknown, + publishDir: unknown, + setPublishDir: (dir: string) => void, + codegenDir: unknown, + setCodegenDir: (dir: string) => void, + ipfs: unknown, + ens: unknown +): boolean { + if (!command) { + print.error(intlMsg.commands_plugin_error_noCommand()); + return false; + } + + if (!command || typeof command !== "string") { + print.error(intlMsg.commands_plugin_error_noCommand()); + return false; + } else if (commands.indexOf(command) === -1) { + print.error(intlMsg.commands_plugin_error_unknownCommand({ command })); + return false; + } + + if (publishDir === true) { + const publishDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--publish-dir", + argument: `<${pathStr}>`, + } + ); + print.error(publishDirMessage); + return false; + } else if (!publishDir) { + setPublishDir(defaultPublishDir); + } + + if (codegenDir === true) { + const codegenDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--codegen-dir", + argument: `<${pathStr}>`, + } + ); + print.error(codegenDirMessage); + return false; + } else if (!codegenDir) { + setCodegenDir(defaultCodegenDir); + } + + if (ipfs === true) { + const ipfsMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--ipfs", + argument: `[<${nodeStr}>]`, + } + ); + print.error(ipfsMissingMessage); + return false; + } + + if (ens === true) { + const ensAddressMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( + { + option: "--ens", + argument: `[<${addrStr}>]`, + } + ); + print.error(ensAddressMissingMessage); + return false; } - \ No newline at end of file + + return true; +} diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index c6816a747e..51cf6a20d2 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,32 +1,31 @@ -// TODO check if query works! import { Command, Program } from "./types"; import { - getTestEnvClientConfig, - importTypescriptModule, - validateClientConfig, - fixParameters, + // getTestEnvClientConfig, + // importTypescriptModule, + // validateClientConfig, + // fixParameters, intlMsg, } from "../lib"; -import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; -import chalk from "chalk"; -import * as jetpack from "fs-jetpack"; +//import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; +//import chalk from "chalk"; +// import * as jetpack from "fs-jetpack"; -import gql from "graphql-tag"; -import path from "path"; -import yaml from "js-yaml"; +// import gql from "graphql-tag"; +// import path from "path"; +// import yaml from "js-yaml"; -const optionsString = intlMsg.commands_build_options_options(); -const scriptStr = intlMsg.commands_create_options_recipeScript(); +// const optionsString = intlMsg.commands_build_options_options(); +// const scriptStr = intlMsg.commands_create_options_recipeScript(); const configPathStr = intlMsg.commands_query_options_configPath(); -const HELP = ` -${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} +// const HELP = ` +// ${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} -${optionsString[0].toUpperCase() + optionsString.slice(1)}: - -t, --test-ens ${intlMsg.commands_build_options_t()} - -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} -`; +// ${optionsString[0].toUpperCase() + optionsString.slice(1)}: +// -t, --test-ens ${intlMsg.commands_build_options_t()} +// -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} +// `; export const query: Command = { @@ -45,199 +44,198 @@ export const query: Command = { async function run(options: any) { - let { testEns, clientConfig } = options; - console.log(options); - console.log(testEns) - console.log(clientConfig); - let recipePath = testEns; - try { - const params = options; - [recipePath] = fixParameters( - { - options: options, - array: params.array, - }, - { - testEns, - } - ); - } catch (e) { - recipePath = null; - console.error(e.message); - process.exitCode = 1; - return; - } - - if (!recipePath) { - const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ - script: `<${scriptStr}>`, - }); - console.error(scriptMissingMessage); - console.info(HELP); - return; - } - - if (clientConfig === true) { - const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( - { - option: "--client-config", - argument: `<${configPathStr}>`, - } - ); - console.error(confgisMissingPathMessage); - console.info(HELP); - return; - } - - let finalClientConfig: Partial; - - try { - finalClientConfig = await getTestEnvClientConfig(); - } catch (e) { - console.error(intlMsg.commands_query_error_noTestEnvFound()); - process.exitCode = 1; - return; - } - - if (clientConfig) { - let configModule; - if (clientConfig.endsWith(".js")) { - configModule = await import(path.resolve(clientConfig)); - } else if (clientConfig.endsWith(".ts")) { - configModule = await importTypescriptModule( - path.resolve(clientConfig) - ); - } else { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( - { module: clientConfig } - ); - console.error(configsModuleMissingExportMessage); - process.exitCode = 1; - return; - } - - if (!configModule || !configModule.getClientConfig) { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( - { module: configModule } - ); - console.error(configsModuleMissingExportMessage); - process.exitCode = 1; - return; - } - - finalClientConfig = configModule.getClientConfig(finalClientConfig); - - try { - validateClientConfig(finalClientConfig); - } catch (e) { - console.error(e.message); - process.exitCode = 1; - return; - } - } - - const client = new Web3ApiClient(finalClientConfig); - - function getParser(path: string) { - return path.endsWith(".yaml") || path.endsWith(".yml") - ? yaml.load - : JSON.parse; - } - - const recipe = getParser(recipePath)(jetpack.read(recipePath) as string); - const dir = path.dirname(recipePath); - let uri = ""; - - let constants: Record = {}; - for (const task of recipe) { - if (task.api) { - uri = task.api; - } - - if (task.constants) { - constants = getParser(task.constants)( - jetpack.read(path.join(dir, task.constants)) as string - ); - } - - if (task.query) { - const query = jetpack.read(path.join(dir, task.query)); - - if (!query) { - const readFailMessage = intlMsg.commands_query_error_readFail({ - query: query ?? "undefined", - }); - throw Error(readFailMessage); - } - - let variables: Record = {}; - - if (task.variables) { - const resolveObjectConstants = ( - constants: Record - ): Record => { - const output: Record = {}; - - Object.keys(constants).forEach((key: string) => { - output[key] = resolveConstant(constants[key]); - }); - - return output; - }; - - const resolveArrayConstants = (arr: unknown[]): unknown[] => { - return arr.map((item) => { - return resolveConstant(item); - }); - }; - - const resolveConstant = (constant: unknown): unknown => { - if (typeof constant === "string" && constant[0] === "$") { - return constants[constant.replace("$", "")]; - } else if (Array.isArray(constant)) { - return resolveArrayConstants(constant); - } else if (typeof constant === "object") { - return resolveObjectConstants( - constant as Record - ); - } else { - return constant; - } - }; - - variables = resolveObjectConstants(task.variables); - } - - if (!uri) { - throw Error(intlMsg.commands_query_error_noApi()); - } - - console.log("-----------------------------------"); - console.log(query); - console.log(JSON.stringify(variables, null, 2)); - console.log("-----------------------------------"); - - const { data, errors } = await client.query({ - uri, - query: gql(query), - variables, - }); - - if (data && data !== {}) { - console.log("-----------------------------------"); - console.log(JSON.stringify(data, null, 2)); - console.log("-----------------------------------"); - } - - if (errors) { - for (const error of errors) { - console.log("-----------------------------------"); - console.log(error.message); - console.log(error.stack || ""); - console.log("-----------------------------------"); - } - process.exitCode = 1; - } - } - } + + // let { testEns, clientConfig } = options; + + // let recipePath; + // try { + // const params = options; + // [recipePath] = fixParameters( + // { + // options: options, + // array: params.array, + // }, + // { + // testEns, + // } + // ); + // } catch (e) { + // recipePath = null; + // console.error(e.message); + // process.exitCode = 1; + // return; + // } + + // if (!recipePath) { + // const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ + // script: `<${scriptStr}>`, + // }); + // console.error(scriptMissingMessage); + // console.info(HELP); + // return; + // } + + // if (clientConfig === true) { + // const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( + // { + // option: "--client-config", + // argument: `<${configPathStr}>`, + // } + // ); + // console.error(confgisMissingPathMessage); + // console.info(HELP); + // return; + // } + + // let finalClientConfig: Partial; + + // try { + // finalClientConfig = await getTestEnvClientConfig(); + // } catch (e) { + // console.error(intlMsg.commands_query_error_noTestEnvFound()); + // process.exitCode = 1; + // return; + // } + + // if (clientConfig) { + // let configModule; + // if (clientConfig.endsWith(".js")) { + // configModule = await import(path.resolve(clientConfig)); + // } else if (clientConfig.endsWith(".ts")) { + // configModule = await importTypescriptModule( + // path.resolve(clientConfig) + // ); + // } else { + // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( + // { module: clientConfig } + // ); + // console.error(configsModuleMissingExportMessage); + // process.exitCode = 1; + // return; + // } + + // if (!configModule || !configModule.getClientConfig) { + // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( + // { module: configModule } + // ); + // console.error(configsModuleMissingExportMessage); + // process.exitCode = 1; + // return; + // } + + // finalClientConfig = configModule.getClientConfig(finalClientConfig); + + // try { + // validateClientConfig(finalClientConfig); + // } catch (e) { + // console.error(e.message); + // process.exitCode = 1; + // return; + // } + // } + + // const client = new Web3ApiClient(finalClientConfig); + + // function getParser(path: string) { + // return path.endsWith(".yaml") || path.endsWith(".yml") + // ? yaml.load + // : JSON.parse; + // } + + // const recipe = getParser(recipePath)(jetpack.read(recipePath) as string); + // const dir = path.dirname(recipePath); + // let uri = ""; + + // let constants: Record = {}; + // for (const task of recipe) { + // if (task.api) { + // uri = task.api; + // } + + // if (task.constants) { + // constants = getParser(task.constants)( + // jetpack.read(path.join(dir, task.constants)) as string + // ); + // } + + // if (task.query) { + // const query = jetpack.read(path.join(dir, task.query)); + + // if (!query) { + // const readFailMessage = intlMsg.commands_query_error_readFail({ + // query: query ?? "undefined", + // }); + // throw Error(readFailMessage); + // } + + // let variables: Record = {}; + + // if (task.variables) { + // const resolveObjectConstants = ( + // constants: Record + // ): Record => { + // const output: Record = {}; + + // Object.keys(constants).forEach((key: string) => { + // output[key] = resolveConstant(constants[key]); + // }); + + // return output; + // }; + + // const resolveArrayConstants = (arr: unknown[]): unknown[] => { + // return arr.map((item) => { + // return resolveConstant(item); + // }); + // }; + + // const resolveConstant = (constant: unknown): unknown => { + // if (typeof constant === "string" && constant[0] === "$") { + // return constants[constant.replace("$", "")]; + // } else if (Array.isArray(constant)) { + // return resolveArrayConstants(constant); + // } else if (typeof constant === "object") { + // return resolveObjectConstants( + // constant as Record + // ); + // } else { + // return constant; + // } + // }; + + // variables = resolveObjectConstants(task.variables); + // } + + // if (!uri) { + // throw Error(intlMsg.commands_query_error_noApi()); + // } + + // console.log("-----------------------------------"); + // console.log(query); + // console.log(JSON.stringify(variables, null, 2)); + // console.log("-----------------------------------"); + + // const { data, errors } = await client.query({ + // uri, + // query: gql(query), + // variables, + // }); + + // if (data && data !== {}) { + // console.log("-----------------------------------"); + // console.log(JSON.stringify(data, null, 2)); + // console.log("-----------------------------------"); + // } + + // if (errors) { + // for (const error of errors) { + // console.log("-----------------------------------"); + // console.log(error.message); + // console.log(error.stack || ""); + // console.log("-----------------------------------"); + // } + // process.exitCode = 1; + // } + // } + // } } \ No newline at end of file From ba2f6c0d2e7d663da626c86ab199dd21517322d2 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Wed, 23 Mar 2022 01:52:59 -0700 Subject: [PATCH 10/23] add commander to create command fix the jest test in create --- packages/cli/src/__tests__/e2e/create.spec.ts | 274 +++++++++--------- packages/cli/src/commands/create.ts | 178 +++++++----- 2 files changed, 249 insertions(+), 203 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/create.spec.ts b/packages/cli/src/__tests__/e2e/create.spec.ts index d4517fe3b5..410afe2ae3 100644 --- a/packages/cli/src/__tests__/e2e/create.spec.ts +++ b/packages/cli/src/__tests__/e2e/create.spec.ts @@ -1,135 +1,139 @@ -// import path from "path"; -// import { supportedLangs } from "../../commands/create"; -// import { clearStyle, w3Cli } from "./utils"; - -// import { runCLI } from "@web3api/test-env-js"; -// import rimraf from "rimraf"; - -// const HELP = ` -// w3 create command [options] - -// Commands: -// api Create a Web3API project -// langs: ${supportedLangs.api.join(", ")} -// app Create a Web3API application -// langs: ${supportedLangs.app.join(", ")} -// plugin Create a Web3API plugin -// langs: ${supportedLangs.plugin.join(", ")} - -// Options: -// -h, --help Show usage information -// -o, --output-dir Output directory for the new project - -// `; - -// describe("e2e tests for create command", () => { -// const projectRoot = path.resolve(__dirname, "../project"); - -// test("Should show help text", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "--help"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); -// }); - -// test("Should throw error for missing parameter - type", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Please provide a command -// ${HELP}`); -// }); - -// test("Should throw error for missing parameter - lang", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "type"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Please provide a language -// ${HELP}`); -// }); - -// test("Should throw error for missing parameter - name", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "type", "lang"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Please provide a project name -// ${HELP}`); -// }); - -// test("Should throw error for invalid parameter - type", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "unknown", "app", "name"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" -// ${HELP}`); -// }); - -// test("Should throw error for invalid parameter - lang", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "api", "unknown", "name"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" -// ${HELP}`); -// }); - -// test("Should throw error for invalid parameter - output-dir", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI({ -// args: ["create", "api", "assemblyscript", "name", "-o"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--output-dir option missing argument -// ${HELP}`); -// }); - -// test("Should successfully generate project", async () => { -// rimraf.sync(`${projectRoot}/test`); - -// const { exitCode: code, stdout: output } = await runCLI({ -// args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(0); -// expect(clearStyle(output)).toContain( -// `🔥 You are ready to turn your protocol into a Web3API 🔥` -// ); - -// rimraf.sync(`${projectRoot}/test`); -// }, 60000); -// }); +import path from "path"; +import { clearStyle, w3Cli } from "./utils"; + +import { runCLI } from "@web3api/test-env-js"; +//import rimraf from "rimraf"; + + +const supportedLangs: { [key: string]: string[] } = { + api: ["assemblyscript", "interface"], + app: ["typescript-node", "typescript-react"], + plugin: ["typescript"], +}; + +const HELP = `Usage: w3 create|c [options] [command] + +Create a new project with w3 CLI + +Options: + -h, --help display help for command + +Commands: + api [options] Create a Web3API project langs: assemblyscript, + interface + app [options] Create a Web3API application langs: typescript-node, + typescript-react + plugin [options] Create a Web3API plugin langs: typescript + help [command] display help for command +`; + +describe("e2e tests for create command", () => { + const projectRoot = path.resolve(__dirname, "../project"); + + test("Should show help text", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["create", "--help"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(error).toBe(""); + expect(clearStyle(output)).toEqual(HELP); + }); + + test("Should throw error for missing parameter - type", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["create"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toEqual(`${HELP}`); + }); + + // test("Should throw error for missing parameter - lang", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["create", "type"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toEqual(`Please provide a language + // ${HELP}`); + // }); + + // test("Should throw error for missing parameter - name", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["create", "type", "lang"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toEqual(`Please provide a project name + // ${HELP}`); + // }); + + // test("Should throw error for invalid parameter - type", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["create", "unknown", "app", "name"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" + // ${HELP}`); + // }); + + // test("Should throw error for invalid parameter - lang", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["create", "api", "unknown", "name"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" + // ${HELP}`); + // }); + + // test("Should throw error for invalid parameter - output-dir", async () => { + // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + // args: ["create", "api", "assemblyscript", "name", "-o"], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(1); + // expect(error).toBe(""); + // expect(clearStyle(output)) + // .toEqual(`--output-dir option missing argument + // ${HELP}`); + // }); + + // test("Should successfully generate project", async () => { + // rimraf.sync(`${projectRoot}/test`); + + // const { exitCode: code, stdout: output } = await runCLI({ + // args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], + // cwd: projectRoot, + // cli: w3Cli, + // }); + + // expect(code).toEqual(0); + // expect(clearStyle(output)).toContain( + // `🔥 You are ready to turn your protocol into a Web3API 🔥` + // ); + + // rimraf.sync(`${projectRoot}/test`); + // }, 60000); +}); diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts index b6285628d0..52b9eed001 100644 --- a/packages/cli/src/commands/create.ts +++ b/packages/cli/src/commands/create.ts @@ -1,17 +1,15 @@ import { Command, Program } from "./types"; import { - //generateProjectTemplate, - //fixParameters, + generateProjectTemplate, intlMsg } from "../lib"; - // import chalk from "chalk"; -// import { GluegunToolbox, GluegunPrint } from "gluegun"; +import { prompt, filesystem } from "gluegun"; // const cmdStr = intlMsg.commands_create_options_command(); -// const nameStr = intlMsg.commands_create_options_projectName(); +const nameStr = intlMsg.commands_create_options_projectName(); // const optionsStr = intlMsg.commands_options_options(); const langStr = intlMsg.commands_create_options_lang(); const langsStr = intlMsg.commands_create_options_langs(); @@ -35,45 +33,89 @@ export const create: Command = { .alias("c") .description(intlMsg.commands_create_description()) - - createCommand - .command(`api <${langStr}>`) + .command(`api <${langStr}> <${nameStr}>`) .description(`${createProjStr} ${langsStr}: ${supportedLangs.api.join(", ")}`) .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) - .action(async (langStr, options) => { - await run("api", langStr, options); + .action(async (langStr, nameStr, options) => { + await run("api", langStr, nameStr, options); }); createCommand .command(`app <${langStr}>`) .description(`${createAppStr} ${langsStr}: ${supportedLangs.app.join(", ")}`) .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) - .action(async (langStr, options) => { - await run("app", langStr, options); + .action(async (langStr, nameStr, options) => { + await run("app", langStr, nameStr, options); }); createCommand .command(`plugin <${langStr}>`) .description(`${createPluginStr} ${langsStr}: ${supportedLangs.plugin.join(", ")}`) .option(`-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}`) - .action(async (langStr, options) => { - await run("plugin", langStr, options); + .action(async (langStr, nameStr, options) => { + await run("plugin", langStr, nameStr, options); }); - - - - } } -async function run(command: "api" | "app" | "plugin", langStr:any, options: any) { - +async function run(command: "api" | "app" | "plugin", lang: any, name: any, options: any) { + let { outputDir } = options; + + console.log(command, lang, options) + console.log(outputDir) + console.log(name); + + + const projectDir = outputDir ? `${outputDir}/${name}` : name; + + // check if project already exists + if (!filesystem.exists(projectDir)) { + console.log(); + console.info(intlMsg.commands_create_settingUp()); + } else { + const directoryExistsMessage = intlMsg.commands_create_directoryExists({ + dir: projectDir, + }); + console.info(directoryExistsMessage); + const overwrite = await prompt.confirm( + intlMsg.commands_create_overwritePrompt() + ); + if (overwrite) { + const overwritingMessage = intlMsg.commands_create_overwriting({ + dir: projectDir, + }); + console.info(overwritingMessage); + filesystem.remove(projectDir); + } else { + process.exit(8); + } + } - console.log(command, langStr, options) + generateProjectTemplate(command, lang, projectDir, filesystem) + .then(() => { + console.log(); + let readyMessage; + if (command === "api") { + readyMessage = intlMsg.commands_create_readyProtocol(); + } else if (command === "app") { + readyMessage = intlMsg.commands_create_readyApp(); + } else if (command === "plugin") { + readyMessage = intlMsg.commands_create_readyPlugin(); + } + console.info(`🔥 ${readyMessage} 🔥`); + }) + .catch((err) => { + const commandFailError = intlMsg.commands_create_error_commandFail({ + error: err.command, + }); + console.error(commandFailError); + }); } + + // export const supportedLangs: { [key: string]: string[] } = { // api: ["assemblyscript", "interface"], // app: ["typescript-node", "typescript-react"], @@ -191,50 +233,50 @@ async function run(command: "api" | "app" | "plugin", langStr:any, options: any) // }, // }; -// function validateCreateParams( -// print: GluegunPrint, -// type: unknown, -// lang: unknown, -// name: unknown, -// outputDir: unknown -// ): boolean { -// if (!type || typeof type !== "string") { -// print.error(intlMsg.commands_create_error_noCommand()); -// return false; -// } - -// if (!lang || typeof lang !== "string") { -// print.error(intlMsg.commands_create_error_noLang()); -// return false; -// } - -// if (!name || typeof name !== "string") { -// print.error(intlMsg.commands_create_error_noName()); -// return false; -// } - -// if (!supportedLangs[type]) { -// const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); -// print.error(`${unrecognizedCommand} "${type}"`); -// return false; -// } - -// if (supportedLangs[type].indexOf(lang) === -1) { -// const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); -// print.error(`${unrecognizedLanguage} "${lang}"`); -// return false; -// } - -// if (outputDir === true) { -// const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( -// { -// option: "--output-dir", -// argument: `<${pathStr}>`, -// } -// ); -// print.error(outputDirMissingPathMessage); -// return false; -// } - -// return true; -// } +// // function validateCreateParams( +// // print: GluegunPrint, +// // type: unknown, +// // lang: unknown, +// // name: unknown, +// // outputDir: unknown +// // ): boolean { +// // if (!type || typeof type !== "string") { +// // print.error(intlMsg.commands_create_error_noCommand()); +// // return false; +// // } + +// // if (!lang || typeof lang !== "string") { +// // print.error(intlMsg.commands_create_error_noLang()); +// // return false; +// // } + +// // if (!name || typeof name !== "string") { +// // print.error(intlMsg.commands_create_error_noName()); +// // return false; +// // } + +// // if (!supportedLangs[type]) { +// // const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); +// // print.error(`${unrecognizedCommand} "${type}"`); +// // return false; +// // } + +// // if (supportedLangs[type].indexOf(lang) === -1) { +// // const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); +// // print.error(`${unrecognizedLanguage} "${lang}"`); +// // return false; +// // } + +// // if (outputDir === true) { +// // const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( +// // { +// // option: "--output-dir", +// // argument: `<${pathStr}>`, +// // } +// // ); +// // print.error(outputDirMissingPathMessage); +// // return false; +// // } + +// // return true; +// // } From 6f8c55c70d05d7cfe5b8855a0ba1cc5de4425a6e Mon Sep 17 00:00:00 2001 From: drewhoang Date: Thu, 24 Mar 2022 02:24:13 -0700 Subject: [PATCH 11/23] update jest test and finished app and create refactor --- packages/cli/src/__tests__/e2e/app.spec.ts | 182 +++++++++--------- packages/cli/src/__tests__/e2e/create.spec.ts | 166 +++++++--------- packages/cli/src/__tests__/e2e/help.spec.ts | 2 + packages/cli/src/commands/create.ts | 172 +---------------- packages/cli/src/commands/index.ts | 2 +- 5 files changed, 159 insertions(+), 365 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/app.spec.ts b/packages/cli/src/__tests__/e2e/app.spec.ts index 9e6e63d0bc..5dac132415 100644 --- a/packages/cli/src/__tests__/e2e/app.spec.ts +++ b/packages/cli/src/__tests__/e2e/app.spec.ts @@ -46,90 +46,86 @@ describe("e2e tests for app command", () => { expect(clearStyle(output)).toEqual(HELP); }); -// test("Should throw error for invalid params - no command", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["app", "--output-dir"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toEqual(`Please provide a command -// ${HELP}`); -// }); - -// test("Should throw error for invalid params - codegen-dir", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["app", "codegen", "--codegen-dir"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--codegen-dir option missing argument -// ${HELP}`); -// }); - -// test("Should throw error for invalid params - ens", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["app", "codegen", "--ens"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--ens option missing [
] argument -// ${HELP}`); -// }); - -// test("Should successfully generate types for plugins", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.withPlugin.yaml`], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(error).toBe(""); -// expect(code).toEqual(0); -// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.withPlugin.yaml -// ✔ Manifest loaded from ./web3api.app.withPlugin.yaml -// - Generate types -// ✔ Generate types -// 🔥 Code was generated successfully 🔥 -// `); -// }); - -// test("Should successfully generate types for multiple packages", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.multiPackage.yaml`], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(error).toBe(""); -// expect(code).toEqual(0); -// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.multiPackage.yaml -// ✔ Manifest loaded from ./web3api.app.multiPackage.yaml -// - Generate types -// ✔ Generate types -// 🔥 Code was generated successfully 🔥 -// `); -// }); + test("Should throw error for invalid params - no command", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["app", "--output-dir"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe("error: unknown option '--output-dir'\n"); + expect(output).toEqual(``); + }); + + test("Should throw error for invalid params - codegen-dir", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["app", "codegen", "--codegen-dir"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe(`error: option '-c, --codegen-dir ' argument missing\n`); + expect(output).toEqual(``); + }); + + test("Should throw error for invalid params - ens", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["app", "codegen", "--ens"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe("error: option '-e, --ens [
]' argument missing\n"); + expect(output) + .toEqual(``); + }); + + test("Should successfully generate types for plugins", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.withPlugin.yaml`], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(error).toBe(""); + expect(code).toEqual(0); + expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.withPlugin.yaml +✔ Manifest loaded from ./web3api.app.withPlugin.yaml +- Generate types +✔ Generate types +🔥 Code was generated successfully 🔥 +`); + }); + + test("Should successfully generate types for multiple packages", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["app", "codegen", "-m", `${projectRoot}/web3api.app.multiPackage.yaml`], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(error).toBe(""); + expect(code).toEqual(0); + expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.app.multiPackage.yaml +✔ Manifest loaded from ./web3api.app.multiPackage.yaml +- Generate types +✔ Generate types +🔥 Code was generated successfully 🔥 +`); + }); }); async function testEnvUp(cwd: string): Promise { @@ -151,13 +147,13 @@ async function testEnvDown(cwd: string): Promise { } async function buildApi(cwd: string): Promise { -// const { exitCode: buildCode, stderr: buildErr } = await runCLI({ -// args: [ -// "build", -// ], -// cwd: cwd, -// cli: w3Cli, -// }); - //expect(buildErr).toBe(""); - //expect(buildCode).toEqual(0); + const { exitCode: buildCode, stderr: buildErr } = await runCLI({ + args: [ + "build", + ], + cwd: cwd, + cli: w3Cli, + }); + expect(buildErr).toBe(""); + expect(buildCode).toEqual(0); } diff --git a/packages/cli/src/__tests__/e2e/create.spec.ts b/packages/cli/src/__tests__/e2e/create.spec.ts index 410afe2ae3..2c27cdd946 100644 --- a/packages/cli/src/__tests__/e2e/create.spec.ts +++ b/packages/cli/src/__tests__/e2e/create.spec.ts @@ -2,29 +2,24 @@ import path from "path"; import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -//import rimraf from "rimraf"; +import rimraf from "rimraf"; -const supportedLangs: { [key: string]: string[] } = { - api: ["assemblyscript", "interface"], - app: ["typescript-node", "typescript-react"], - plugin: ["typescript"], -}; - const HELP = `Usage: w3 create|c [options] [command] Create a new project with w3 CLI Options: - -h, --help display help for command + -h, --help display help for command Commands: - api [options] Create a Web3API project langs: assemblyscript, - interface - app [options] Create a Web3API application langs: typescript-node, - typescript-react - plugin [options] Create a Web3API plugin langs: typescript - help [command] display help for command + api [options] Create a Web3API project langs: + assemblyscript, interface + app [options] Create a Web3API application langs: + typescript-node, typescript-react + plugin [options] Create a Web3API plugin langs: + typescript + help [command] display help for command `; describe("e2e tests for create command", () => { @@ -42,98 +37,69 @@ describe("e2e tests for create command", () => { expect(clearStyle(output)).toEqual(HELP); }); - test("Should throw error for missing parameter - type", async () => { + test("Should throw error for missing parameter - type", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["create"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe(HELP); + expect(output).toEqual(""); + }); + + test("Should throw error for missing parameter - lang", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["create", "type"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe(`error: unknown command 'type'\n`); + expect(output).toEqual(""); + }); + + test("Should throw error for missing parameter - name", async () => { const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - args: ["create"], + args: ["create", "type", "lang"], cwd: projectRoot, cli: w3Cli, }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`${HELP}`); + expect(error).toBe("error: unknown command 'type'\n"); + expect(output).toEqual(""); + }); + + test("Should throw error for invalid parameter - output-dir", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["create", "api", "assemblyscript", "name", "-o"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe("error: option '-o, --output-dir ' argument missing\n"); + expect(output) + .toEqual(``); }); - // test("Should throw error for missing parameter - lang", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["create", "type"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toEqual(`Please provide a language - // ${HELP}`); - // }); - - // test("Should throw error for missing parameter - name", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["create", "type", "lang"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toEqual(`Please provide a project name - // ${HELP}`); - // }); - - // test("Should throw error for invalid parameter - type", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["create", "unknown", "app", "name"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" - // ${HELP}`); - // }); - - // test("Should throw error for invalid parameter - lang", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["create", "api", "unknown", "name"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" - // ${HELP}`); - // }); - - // test("Should throw error for invalid parameter - output-dir", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["create", "api", "assemblyscript", "name", "-o"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)) - // .toEqual(`--output-dir option missing argument - // ${HELP}`); - // }); - - // test("Should successfully generate project", async () => { - // rimraf.sync(`${projectRoot}/test`); - - // const { exitCode: code, stdout: output } = await runCLI({ - // args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(0); - // expect(clearStyle(output)).toContain( - // `🔥 You are ready to turn your protocol into a Web3API 🔥` - // ); - - // rimraf.sync(`${projectRoot}/test`); - // }, 60000); + test("Should successfully generate project", async () => { + rimraf.sync(`${projectRoot}/test`); + + const { exitCode: code, stdout: output } = await runCLI({ + args: ["create", "api", "assemblyscript", "test", "-o", `${projectRoot}/test`], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(clearStyle(output)).toContain( + `🔥 You are ready to turn your protocol into a Web3API 🔥` + ); + + rimraf.sync(`${projectRoot}/test`); + }, 60000); }); diff --git a/packages/cli/src/__tests__/e2e/help.spec.ts b/packages/cli/src/__tests__/e2e/help.spec.ts index b66cdba3aa..d9186196da 100644 --- a/packages/cli/src/__tests__/e2e/help.spec.ts +++ b/packages/cli/src/__tests__/e2e/help.spec.ts @@ -10,6 +10,8 @@ Options: Commands: app|a Build/generate types for your app + build|b [options] Builds a Web3API and (optionally) uploads it to IPFS + create|c Create a new project with w3 CLI query|q [options] Query Web3APIs using recipe scripts test-env|t Manage a test environment for Web3API help [command] display help for command diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts index 52b9eed001..863e4753c3 100644 --- a/packages/cli/src/commands/create.ts +++ b/packages/cli/src/commands/create.ts @@ -5,12 +5,9 @@ import { } from "../lib"; -// import chalk from "chalk"; import { prompt, filesystem } from "gluegun"; -// const cmdStr = intlMsg.commands_create_options_command(); const nameStr = intlMsg.commands_create_options_projectName(); -// const optionsStr = intlMsg.commands_options_options(); const langStr = intlMsg.commands_create_options_lang(); const langsStr = intlMsg.commands_create_options_langs(); const createProjStr = intlMsg.commands_create_options_createProject(); @@ -112,171 +109,4 @@ async function run(command: "api" | "app" | "plugin", lang: any, name: any, opti }); console.error(commandFailError); }); -} - - - -// export const supportedLangs: { [key: string]: string[] } = { -// api: ["assemblyscript", "interface"], -// app: ["typescript-node", "typescript-react"], -// plugin: ["typescript"], -// }; - -// const HELP = ` -// ${chalk.bold("w3 create")} ${cmdStr} <${nameStr}> [${optionsStr}] - -// ${intlMsg.commands_create_options_commands()}: -// ${chalk.bold("api")} <${langStr}> ${createProjStr} -// ${langsStr}: ${supportedLangs.api.join(", ")} -// ${chalk.bold("app")} <${langStr}> ${createAppStr} -// ${langsStr}: ${supportedLangs.app.join(", ")} -// ${chalk.bold("plugin")} <${langStr}> ${createPluginStr} -// ${langsStr}: ${supportedLangs.plugin.join(", ")} - -// Options: -// -h, --help ${intlMsg.commands_create_options_h()} -// -o, --output-dir <${pathStr}> ${intlMsg.commands_create_options_o()} -// `; - -// export default { -// alias: ["c"], -// description: intlMsg.commands_create_description(), -// run: async (toolbox: GluegunToolbox): Promise => { -// const { parameters, print, prompt, filesystem } = toolbox; - -// // Options -// let { help, outputDir } = parameters.options; -// const { h, o } = parameters.options; - -// help = help || h; -// outputDir = outputDir || o; - -// let type = ""; -// let lang = ""; -// let name = ""; -// try { -// const params = parameters; -// [type, lang, name] = fixParameters( -// { -// options: params.options, -// array: params.array, -// }, -// { -// h, -// help, -// } -// ); -// // eslint-disable-next-line no-empty -// } catch (e) {} - -// // Validate Params -// const paramsValid = validateCreateParams( -// print, -// type, -// lang, -// name, -// outputDir -// ); - -// if (help || !paramsValid) { -// print.info(HELP); -// if (!paramsValid) { -// process.exitCode = 1; -// } -// return; -// } - -// const projectDir = outputDir ? `${outputDir}/${name}` : name; - -// // check if project already exists -// if (!filesystem.exists(projectDir)) { -// print.newline(); -// print.info(intlMsg.commands_create_settingUp()); -// } else { -// const directoryExistsMessage = intlMsg.commands_create_directoryExists({ -// dir: projectDir, -// }); -// print.info(directoryExistsMessage); -// const overwrite = await prompt.confirm( -// intlMsg.commands_create_overwritePrompt() -// ); -// if (overwrite) { -// const overwritingMessage = intlMsg.commands_create_overwriting({ -// dir: projectDir, -// }); -// print.info(overwritingMessage); -// filesystem.remove(projectDir); -// } else { -// process.exit(8); -// } -// } - -// generateProjectTemplate(type, lang, projectDir, filesystem) -// .then(() => { -// print.newline(); -// let readyMessage; -// if (type === "api") { -// readyMessage = intlMsg.commands_create_readyProtocol(); -// } else if (type === "app") { -// readyMessage = intlMsg.commands_create_readyApp(); -// } else if (type === "plugin") { -// readyMessage = intlMsg.commands_create_readyPlugin(); -// } -// print.info(`🔥 ${readyMessage} 🔥`); -// }) -// .catch((err) => { -// const commandFailError = intlMsg.commands_create_error_commandFail({ -// error: err.command, -// }); -// print.error(commandFailError); -// }); -// }, -// }; - -// // function validateCreateParams( -// // print: GluegunPrint, -// // type: unknown, -// // lang: unknown, -// // name: unknown, -// // outputDir: unknown -// // ): boolean { -// // if (!type || typeof type !== "string") { -// // print.error(intlMsg.commands_create_error_noCommand()); -// // return false; -// // } - -// // if (!lang || typeof lang !== "string") { -// // print.error(intlMsg.commands_create_error_noLang()); -// // return false; -// // } - -// // if (!name || typeof name !== "string") { -// // print.error(intlMsg.commands_create_error_noName()); -// // return false; -// // } - -// // if (!supportedLangs[type]) { -// // const unrecognizedCommand = intlMsg.commands_create_error_unrecognizedCommand(); -// // print.error(`${unrecognizedCommand} "${type}"`); -// // return false; -// // } - -// // if (supportedLangs[type].indexOf(lang) === -1) { -// // const unrecognizedLanguage = intlMsg.commands_create_error_unrecognizedLanguage(); -// // print.error(`${unrecognizedLanguage} "${lang}"`); -// // return false; -// // } - -// // if (outputDir === true) { -// // const outputDirMissingPathMessage = intlMsg.commands_create_error_outputDirMissingPath( -// // { -// // option: "--output-dir", -// // argument: `<${pathStr}>`, -// // } -// // ); -// // print.error(outputDirMissingPathMessage); -// // return false; -// // } - -// // return true; -// // } +} \ No newline at end of file diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 19b4dfdbf9..451650ffe9 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -1,5 +1,5 @@ export * from "./app"; -// export * from "./build"; +export * from "./build"; export * from "./create"; // export * from "./codegen"; export * from "./query"; From 9d1c52cad29937e4bd64d51a868a9d503bf8eb87 Mon Sep 17 00:00:00 2001 From: drewhoang Date: Thu, 24 Mar 2022 10:53:46 -0700 Subject: [PATCH 12/23] refactor app build codegen plugin and query next steps fix e2e test --- packages/cli/src/__tests__/e2e/build.spec.ts | 442 ++++++++--------- .../cli/src/__tests__/e2e/codegen.spec.ts | 136 +++--- packages/cli/src/__tests__/e2e/plugin.spec.ts | 262 +++++----- packages/cli/src/__tests__/e2e/query.spec.ts | 366 +++++++------- packages/cli/src/commands/build.ts | 446 +++++++++--------- packages/cli/src/commands/codegen.ts | 251 +++------- packages/cli/src/commands/index.ts | 3 +- packages/cli/src/commands/plugin.ts | 269 +++-------- packages/cli/src/commands/query.ts | 405 ++++++++-------- 9 files changed, 1149 insertions(+), 1431 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/build.spec.ts b/packages/cli/src/__tests__/e2e/build.spec.ts index 8713e68f12..0c4fc064f9 100644 --- a/packages/cli/src/__tests__/e2e/build.spec.ts +++ b/packages/cli/src/__tests__/e2e/build.spec.ts @@ -1,9 +1,9 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -//import fs from "fs"; +import fs from "fs"; import path from "path"; -//import { Web3ApiProject, loadBuildManifest } from "../../lib"; +import { Web3ApiProject, loadBuildManifest } from "../../lib"; const HELP = `Usage: w3 build|b [options] @@ -41,224 +41,224 @@ describe("e2e tests for build command", () => { expect(clearStyle(output)).toEqual(HELP); }); -// test("Should throw error for invalid params - outputDir", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["build", "--output-dir"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--output-dir option missing argument -// ${HELP}`); -// }); - -// test("Should throw error for invalid params - testEns", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["build", "--test-ens"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--test-ens option missing <[address,]domain> argument -// ${HELP}`); -// }); - -// test("Should throw error for invalid params - ipfs", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["build", "--test-ens", "test.eth"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--test-ens option requires the --ipfs [] option -// ${HELP}`); -// }); - -// test("Should throw error for invalid web3api - invalid route", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["build", "--manifest-file", "invalid-web3api-1.yaml"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// const schemaPath = path.normalize( -// `${projectRoot}/src/wrong/schema.graphql` -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toContain( -// `ENOENT: no such file or directory, open '${schemaPath}'` -// ); -// }); - -// test("Should throw error for invalid web3api - invalid field", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["build", "-m", "invalid-web3api-2.yaml"], -// cwd: projectRoot, -// cli: w3Cli, -// }, + test("Should throw error for invalid params - outputDir", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["build", "--output-dir"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual(`--output-dir option missing argument +${HELP}`); + }); + + test("Should throw error for invalid params - testEns", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["build", "--test-ens"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual(`--test-ens option missing <[address,]domain> argument +${HELP}`); + }); + + test("Should throw error for invalid params - ipfs", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["build", "--test-ens", "test.eth"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual(`--test-ens option requires the --ipfs [] option +${HELP}`); + }); + + test("Should throw error for invalid web3api - invalid route", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["build", "--manifest-file", "invalid-web3api-1.yaml"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + const schemaPath = path.normalize( + `${projectRoot}/src/wrong/schema.graphql` + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toContain( + `ENOENT: no such file or directory, open '${schemaPath}'` + ); + }); + + test("Should throw error for invalid web3api - invalid field", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["build", "-m", "invalid-web3api-2.yaml"], + cwd: projectRoot, + cli: w3Cli, + }, -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)).toContain( -// `instance is not allowed to have the additional property \"wrong_mutation\"` -// ); -// }); - -// test("Successfully build the project", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["build", "-v"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// const manifestPath = "build/web3api.json"; -// const sanitizedOutput = clearStyle(output); - -// expect(code).toEqual(0); -// expect(sanitizedOutput).toContain( -// "Artifacts written to ./build from the image `polywrap-build-env-" -// ); -// expect(sanitizedOutput).toContain( -// "Manifest written to ./build/web3api.json" -// ); -// expect(sanitizedOutput).toContain(manifestPath); -// }); - -// test("Adds uuid-v4 suffix to build-env image if no build manifest specified", async () => { -// const project = new Web3ApiProject({ -// rootCacheDir: projectRoot, -// web3apiManifestPath: path.join(projectRoot, "web3api.nobuild.yaml") -// }); - -// await project.cacheDefaultBuildManifestFiles(); - -// const cacheBuildEnvPath = path.join(projectRoot, ".w3/web3api/build/env") -// const cachedBuildManifest = await loadBuildManifest( -// path.join(cacheBuildEnvPath, "web3api.build.yaml") -// ); - -// const buildImageName = cachedBuildManifest.docker?.name - -// expect(buildImageName?.length).toBeGreaterThan(36) -// expect((buildImageName?.match(/-/g) || []).length).toBeGreaterThanOrEqual(4); -// }); - -// test("Successfully builds project w/ web3api.build.yaml but no dockerfile", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["build", "-m", "web3api.no-docker.yaml", "-v"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// const manifestPath = "build/web3api.json"; -// const sanitizedOutput = clearStyle(output); - -// expect(code).toEqual(0); -// expect(sanitizedOutput).toContain( -// "Artifacts written to ./build from the image `polywrap-build-env-" -// ); -// expect(sanitizedOutput).toContain( -// "Manifest written to ./build/web3api.json" -// ); -// expect(sanitizedOutput).toContain(manifestPath); -// }); - -// test("Successfully builds project w/ web3api.build.yaml and linked packages", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["build", "-m", "web3api.linked-packages.yaml", "-v"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// const manifestPath = "build/web3api.json"; -// const sanitizedOutput = clearStyle(output); - -// expect(code).toEqual(0); -// expect(sanitizedOutput).toContain( -// "Artifacts written to ./build from the image `polywrap-build-env-" -// ); -// expect(sanitizedOutput).toContain( -// "Manifest written to ./build/web3api.json" -// ); -// expect(sanitizedOutput).toContain(manifestPath); -// }); - -// test("Successfully builds project w/ dockerfile", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["build", "-m", "web3api.docker.yaml", "-v"], -// cwd: projectRoot, -// cli: w3Cli, -// }, -// ); - -// const manifestPath = "build/web3api.json"; -// const sanitizedOutput = clearStyle(output); - -// expect(code).toEqual(0); -// expect(sanitizedOutput).toContain( -// "Artifacts written to ./build from the image `polywrap-build-env-" -// ); -// expect(sanitizedOutput).toContain( -// "Manifest written to ./build/web3api.json" -// ); -// expect(sanitizedOutput).toContain(manifestPath); -// }); - -// test("Successfully builds project w/ metadata", async () => { -// const { exitCode: code, stdout: output } = await runCLI({ -// args: ["build", "-m", "web3api-meta.yaml", "-v"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// const manifestPath = "build/web3api.meta.json"; -// const queryPath = "build/meta/queries/test.graphql"; -// const queryVarPath = "build/meta/queries/test.json"; -// const linkIconPath = "build/meta/links/link.svg"; -// const iconPath = "build/meta/icon/icon.png"; -// const sanitizedOutput = clearStyle(output); - -// expect(code).toEqual(0); -// expect(sanitizedOutput).toContain("Artifacts written to ./build from the image `polywrap-build-env-"); -// expect(sanitizedOutput).toContain("Manifest written to ./build/web3api.json"); -// expect(sanitizedOutput).toContain(manifestPath); -// expect(sanitizedOutput).toContain(queryPath); -// expect(sanitizedOutput).toContain(queryVarPath); -// expect(sanitizedOutput).toContain(linkIconPath); -// expect(sanitizedOutput).toContain(iconPath); - -// expect(fs.existsSync(path.join(projectRoot, queryPath))).toBeTruthy(); -// expect(fs.existsSync(path.join(projectRoot, queryVarPath))).toBeTruthy(); -// expect(fs.existsSync(path.join(projectRoot, linkIconPath))).toBeTruthy(); -// expect(fs.existsSync(path.join(projectRoot, iconPath))).toBeTruthy(); -// }); + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toContain( + `instance is not allowed to have the additional property \"wrong_mutation\"` + ); + }); + + test("Successfully build the project", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["build", "-v"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + const manifestPath = "build/web3api.json"; + const sanitizedOutput = clearStyle(output); + + expect(code).toEqual(0); + expect(sanitizedOutput).toContain( + "Artifacts written to ./build from the image `polywrap-build-env-" + ); + expect(sanitizedOutput).toContain( + "Manifest written to ./build/web3api.json" + ); + expect(sanitizedOutput).toContain(manifestPath); + }); + + test("Adds uuid-v4 suffix to build-env image if no build manifest specified", async () => { + const project = new Web3ApiProject({ + rootCacheDir: projectRoot, + web3apiManifestPath: path.join(projectRoot, "web3api.nobuild.yaml") + }); + + await project.cacheDefaultBuildManifestFiles(); + + const cacheBuildEnvPath = path.join(projectRoot, ".w3/web3api/build/env") + const cachedBuildManifest = await loadBuildManifest( + path.join(cacheBuildEnvPath, "web3api.build.yaml") + ); + + const buildImageName = cachedBuildManifest.docker?.name + + expect(buildImageName?.length).toBeGreaterThan(36) + expect((buildImageName?.match(/-/g) || []).length).toBeGreaterThanOrEqual(4); + }); + + test("Successfully builds project w/ web3api.build.yaml but no dockerfile", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["build", "-m", "web3api.no-docker.yaml", "-v"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + const manifestPath = "build/web3api.json"; + const sanitizedOutput = clearStyle(output); + + expect(code).toEqual(0); + expect(sanitizedOutput).toContain( + "Artifacts written to ./build from the image `polywrap-build-env-" + ); + expect(sanitizedOutput).toContain( + "Manifest written to ./build/web3api.json" + ); + expect(sanitizedOutput).toContain(manifestPath); + }); + + test("Successfully builds project w/ web3api.build.yaml and linked packages", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["build", "-m", "web3api.linked-packages.yaml", "-v"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + const manifestPath = "build/web3api.json"; + const sanitizedOutput = clearStyle(output); + + expect(code).toEqual(0); + expect(sanitizedOutput).toContain( + "Artifacts written to ./build from the image `polywrap-build-env-" + ); + expect(sanitizedOutput).toContain( + "Manifest written to ./build/web3api.json" + ); + expect(sanitizedOutput).toContain(manifestPath); + }); + + test("Successfully builds project w/ dockerfile", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["build", "-m", "web3api.docker.yaml", "-v"], + cwd: projectRoot, + cli: w3Cli, + }, + ); + + const manifestPath = "build/web3api.json"; + const sanitizedOutput = clearStyle(output); + + expect(code).toEqual(0); + expect(sanitizedOutput).toContain( + "Artifacts written to ./build from the image `polywrap-build-env-" + ); + expect(sanitizedOutput).toContain( + "Manifest written to ./build/web3api.json" + ); + expect(sanitizedOutput).toContain(manifestPath); + }); + + test("Successfully builds project w/ metadata", async () => { + const { exitCode: code, stdout: output } = await runCLI({ + args: ["build", "-m", "web3api-meta.yaml", "-v"], + cwd: projectRoot, + cli: w3Cli, + }); + + const manifestPath = "build/web3api.meta.json"; + const queryPath = "build/meta/queries/test.graphql"; + const queryVarPath = "build/meta/queries/test.json"; + const linkIconPath = "build/meta/links/link.svg"; + const iconPath = "build/meta/icon/icon.png"; + const sanitizedOutput = clearStyle(output); + + expect(code).toEqual(0); + expect(sanitizedOutput).toContain("Artifacts written to ./build from the image `polywrap-build-env-"); + expect(sanitizedOutput).toContain("Manifest written to ./build/web3api.json"); + expect(sanitizedOutput).toContain(manifestPath); + expect(sanitizedOutput).toContain(queryPath); + expect(sanitizedOutput).toContain(queryVarPath); + expect(sanitizedOutput).toContain(linkIconPath); + expect(sanitizedOutput).toContain(iconPath); + + expect(fs.existsSync(path.join(projectRoot, queryPath))).toBeTruthy(); + expect(fs.existsSync(path.join(projectRoot, queryVarPath))).toBeTruthy(); + expect(fs.existsSync(path.join(projectRoot, linkIconPath))).toBeTruthy(); + expect(fs.existsSync(path.join(projectRoot, iconPath))).toBeTruthy(); + }); }); diff --git a/packages/cli/src/__tests__/e2e/codegen.spec.ts b/packages/cli/src/__tests__/e2e/codegen.spec.ts index bdad65c659..f9347fc0de 100644 --- a/packages/cli/src/__tests__/e2e/codegen.spec.ts +++ b/packages/cli/src/__tests__/e2e/codegen.spec.ts @@ -3,7 +3,7 @@ import { defaultWeb3ApiManifest } from "../../lib"; import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -// import rimraf from "rimraf"; +import rimraf from "rimraf"; const HELP = `Usage: w3 codegen|g [options] @@ -38,73 +38,69 @@ describe("e2e tests for codegen command", () => { expect(clearStyle(output)).toEqual(HELP); }); - // test("Should throw error for invalid params - script", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["codegen", "--script"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)) - // .toEqual(`--script option missing argument - // ${HELP}`); - // }); - - // test("Should throw error for invalid params - ens", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["codegen", "--ens"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)) - // .toEqual(`--ens option missing [
] argument - // ${HELP}`); - // }); - - // test("Should throw error for invalid generation file - wrong file", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["codegen", "--script", `web3api-invalid.gen.js`], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // const genFile = path.normalize(`${projectRoot}/web3api-invalid.gen.js`); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toContain(`Failed to generate types: Cannot find module '${genFile}'`); - // }); - - // test("Should throw error for invalid generation file - no run() method", async () => { - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["codegen", "--script", `web3api-norun.gen.js`], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(1); - // expect(error).toBe(""); - // expect(clearStyle(output)).toContain(`Failed to generate types: The generation file provided doesn't have the 'generateBinding' method.`); - // }); - - // test("Should successfully generate types", async () => { - // rimraf.sync(`${projectRoot}/types`); - - // const { exitCode: code, stdout: output, stderr: error } = await runCLI({ - // args: ["codegen"], - // cwd: projectRoot, - // cli: w3Cli, - // }); - - // expect(code).toEqual(0); - // expect(error).toBe(""); - // expect(clearStyle(output)).toContain(`🔥 Types were generated successfully 🔥`); - - // rimraf.sync(`${projectRoot}/types`); - // }); + test("Should throw error for invalid params - script", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen", "--script"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe("error: option '-s, --script ' argument missing\n"); + expect(output).toEqual(``); + }); + + test("Should throw error for invalid params - ens", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen", "--ens"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe("error: option '-e, --ens [
]' argument missing\n"); + expect(clearStyle(output)).toEqual(``); + }); + + test("Should throw error for invalid generation file - wrong file", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen", "--script", `web3api-invalid.gen.js`], + cwd: projectRoot, + cli: w3Cli, + }); + + const genFile = path.normalize(`${projectRoot}/web3api-invalid.gen.js`); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toContain(`Failed to generate types: Cannot find module '${genFile}'`); + }); + + test("Should throw error for invalid generation file - no run() method", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen", "--script", `web3api-norun.gen.js`], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toContain(`Failed to generate types: The generation file provided doesn't have the 'generateBinding' method.`); + }); + + test("Should successfully generate types", async () => { + rimraf.sync(`${projectRoot}/types`); + + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["codegen"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)).toContain(`🔥 Types were generated successfully 🔥`); + + rimraf.sync(`${projectRoot}/types`); + }); }); diff --git a/packages/cli/src/__tests__/e2e/plugin.spec.ts b/packages/cli/src/__tests__/e2e/plugin.spec.ts index 8c5edd3ed0..1c7ad8f7f1 100644 --- a/packages/cli/src/__tests__/e2e/plugin.spec.ts +++ b/packages/cli/src/__tests__/e2e/plugin.spec.ts @@ -1,131 +1,131 @@ -// import path from "path"; -// import { defaultPluginManifest } from "../../lib"; -// import { clearStyle } from "./utils"; - -// import { runCLI } from "@web3api/test-env-js"; -// import { compareSync } from "dir-compare"; - -// const HELP = ` -// w3 plugin command [options] - -// Commands: -// codegen Generate code for the plugin - -// Options: -// -h, --help Show usage information -// -m, --manifest-file Path to the Web3API Plugin manifest file (default: ${defaultPluginManifest.join( -// " | " -// )}) -// -p, --publish-dir Output path for the built schema and manifest (default: ./build) -// -c, --codegen-dir Output directory for the generated types (default: ./src/w3) -// -i, --ipfs [] IPFS node to load external schemas (default: dev-server's node) -// -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) - -// `; - -// describe("e2e tests for plugin command", () => { -// const projectRoot = path.resolve(__dirname, "../plugin/"); - -// test("Should show help text", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["plugin", "codegen", "--help"], -// cwd: projectRoot, -// } -// ); - -// expect(code).toEqual(0); -// expect(clearStyle(output)).toEqual(HELP); -// }); - -// test("Should throw error for invalid params - no command", async () => { -// const { exitCode: code, stdout: output } = await runCLI( -// { -// args: ["plugin", "--codegen-dir"], -// cwd: projectRoot, -// } -// ); - -// expect(code).toEqual(1); -// expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); -// }); - -// test("Should throw error for invalid params - publish-dir", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["plugin", "codegen", "--publish-dir"], -// cwd: projectRoot, -// } -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual("--publish-dir option missing argument\n" + HELP); -// }); - -// test("Should throw error for invalid params - codegen-dir", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["plugin", "codegen", "--codegen-dir"], -// cwd: projectRoot, -// } -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--codegen-dir option missing argument -// ${HELP}`); -// }); - -// test("Should throw error for invalid params - ens", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["plugin", "codegen", "--ens"], -// cwd: projectRoot, -// } -// ); - -// expect(code).toEqual(1); -// expect(error).toBe(""); -// expect(clearStyle(output)) -// .toEqual(`--ens option missing [
] argument -// ${HELP}`); -// }); - -// test("Should successfully generate types", async () => { -// const { exitCode: code, stdout: output, stderr: error } = await runCLI( -// { -// args: ["plugin", "codegen"], -// cwd: projectRoot, -// } -// ); - -// expect(error).toBe(""); -// expect(code).toEqual(0); -// expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.plugin.yaml -// ✔ Manifest loaded from ./web3api.plugin.yaml -// - Generate types -// ✔ Generate types -// - Manifest written to ./build/web3api.plugin.json -// ✔ Manifest written to ./build/web3api.plugin.json -// `); - -// const expectedTypesResult = compareSync( -// `${projectRoot}/src/w3`, -// `${projectRoot}/expected-types`, -// { compareContent: true } -// ); - -// expect(expectedTypesResult.differences).toBe(0); - -// const expectedBuildResult = compareSync( -// `${projectRoot}/build`, -// `${projectRoot}/expected-build`, -// { compareContent: true } -// ); - -// expect(expectedBuildResult.differences).toBe(0); -// }); -// }); +import path from "path"; +import { defaultPluginManifest } from "../../lib"; +import { clearStyle } from "./utils"; + +import { runCLI } from "@web3api/test-env-js"; +import { compareSync } from "dir-compare"; + +const HELP = ` +w3 plugin command [options] + +Commands: + codegen Generate code for the plugin + +Options: + -h, --help Show usage information + -m, --manifest-file Path to the Web3API Plugin manifest file (default: ${defaultPluginManifest.join( + " | " + )}) + -p, --publish-dir Output path for the built schema and manifest (default: ./build) + -c, --codegen-dir Output directory for the generated types (default: ./src/w3) + -i, --ipfs [] IPFS node to load external schemas (default: dev-server's node) + -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) + +`; + +describe("e2e tests for plugin command", () => { + const projectRoot = path.resolve(__dirname, "../plugin/"); + + test("Should show help text", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["plugin", "codegen", "--help"], + cwd: projectRoot, + } + ); + + expect(code).toEqual(0); + expect(clearStyle(output)).toEqual(HELP); + }); + + test("Should throw error for invalid params - no command", async () => { + const { exitCode: code, stdout: output } = await runCLI( + { + args: ["plugin", "--codegen-dir"], + cwd: projectRoot, + } + ); + + expect(code).toEqual(1); + expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); + }); + + test("Should throw error for invalid params - publish-dir", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["plugin", "codegen", "--publish-dir"], + cwd: projectRoot, + } + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual("--publish-dir option missing argument\n" + HELP); + }); + + test("Should throw error for invalid params - codegen-dir", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["plugin", "codegen", "--codegen-dir"], + cwd: projectRoot, + } + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual(`--codegen-dir option missing argument +${HELP}`); + }); + + test("Should throw error for invalid params - ens", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["plugin", "codegen", "--ens"], + cwd: projectRoot, + } + ); + + expect(code).toEqual(1); + expect(error).toBe(""); + expect(clearStyle(output)) + .toEqual(`--ens option missing [
] argument +${HELP}`); + }); + + test("Should successfully generate types", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI( + { + args: ["plugin", "codegen"], + cwd: projectRoot, + } + ); + + expect(error).toBe(""); + expect(code).toEqual(0); + expect(clearStyle(output)).toEqual(`- Manifest loaded from ./web3api.plugin.yaml +✔ Manifest loaded from ./web3api.plugin.yaml +- Generate types +✔ Generate types +- Manifest written to ./build/web3api.plugin.json +✔ Manifest written to ./build/web3api.plugin.json +`); + + const expectedTypesResult = compareSync( + `${projectRoot}/src/w3`, + `${projectRoot}/expected-types`, + { compareContent: true } + ); + + expect(expectedTypesResult.differences).toBe(0); + + const expectedBuildResult = compareSync( + `${projectRoot}/build`, + `${projectRoot}/expected-build`, + { compareContent: true } + ); + + expect(expectedBuildResult.differences).toBe(0); + }); +}); diff --git a/packages/cli/src/__tests__/e2e/query.spec.ts b/packages/cli/src/__tests__/e2e/query.spec.ts index 35334bd376..bf1392ccf7 100644 --- a/packages/cli/src/__tests__/e2e/query.spec.ts +++ b/packages/cli/src/__tests__/e2e/query.spec.ts @@ -1,188 +1,178 @@ -// import fs from "fs"; -// import path from "path"; -// import yaml from "js-yaml"; - -// import { clearStyle, w3Cli } from "./utils"; - -// import { runCLI } from "@web3api/test-env-js"; -// import { normalizeLineEndings } from "@web3api/os-js"; -// import { -// checkSampleQueryOutput, -// getSampleOutputWithClientConfig, -// ISampleOutputOptions, -// } from "./query.spec.helper"; - -// const HELP = ` -// w3 query [options] - -// Options: -// -t, --test-ens Use the development server's ENS instance -// -c, --client-config Add custom configuration to the Web3ApiClient - -// `; - -// const projectRoot = path.resolve(__dirname, "../project/"); - -// describe("sanity tests for query command", () => { -// test("Should throw error for missing recipe-string", async () => { -// const { exitCode, stdout, stderr } = await runCLI({ -// args: ["query"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(exitCode).toEqual(0); -// expect(stderr).toBe(""); -// expect(clearStyle(stdout)) -// .toEqual(`Required argument is missing -// ${HELP}`); -// }); - -// test("Should throw error is --client-config doesn't contain arguments", async () => { -// const { exitCode, stdout, stderr } = await runCLI({ -// args: ["query", "./recipes/e2e.json", "--client-config"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(exitCode).toEqual(0); -// expect(stderr).toBe(""); -// expect(clearStyle(stdout)) -// .toEqual(`--client-config option missing argument -// ${HELP}`); -// }); -// }); - -// describe("e2e tests for query command", () => { -// beforeAll(async () => { -// const { exitCode: testenvCode, stderr: testEnvUpErr } = await runCLI({ -// args: ["test-env", "up"], -// cwd: projectRoot, -// cli: w3Cli, -// }); -// expect(testEnvUpErr).toBe(""); -// expect(testenvCode).toEqual(0); - -// const { stderr: deployErr } = await runCLI({ -// args: ["./deploy-contracts.js"], -// cwd: projectRoot, -// cli: " ", -// }); - -// expect(deployErr).toBe(""); - -// const { exitCode: buildCode, stderr: buildErr } = await runCLI({ -// args: [ -// "build", -// "--ipfs", -// "http://localhost:5001", -// "--test-ens", -// "simplestorage.eth", -// ], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(buildErr).toBe(""); -// expect(buildCode).toEqual(0); -// }); - -// afterAll(async () => { -// await runCLI({ -// args: ["test-env", "down"], -// cwd: projectRoot, -// cli: w3Cli, -// }); -// }); - -// test("Should use custom config for client if specified", async () => { -// const configs = ["./client-config.ts", "./client-config.js"]; - -// for (const config of configs) { -// const { exitCode, stdout, stderr } = await runCLI({ -// args: [ -// "query", -// "./recipes/e2e.json", -// "--test-ens", -// "--client-config", -// config, -// ], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(stderr).toBeFalsy(); -// expect(stdout).toBeTruthy(); - -// expect(exitCode).toEqual(0); -// expect(stderr).toBe(""); - -// const constants = require(`${projectRoot}/recipes/constants.json`); -// expect(clearStyle(normalizeLineEndings(stdout, "\n"))).toContain( -// getSampleOutputWithClientConfig({ -// SimpleStorageAddr: constants.SimpleStorageAddr, -// }) -// ); -// } -// }, 48000); - -// test("Should successfully return response: using json recipes", async () => { -// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ -// args: ["query", "./recipes/e2e.json", "--test-ens"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(0); -// expect(queryErr).toBe(""); - -// const constants = require(`${projectRoot}/recipes/constants.json`); -// checkSampleQueryOutput(output, { -// SimpleStorageAddr: constants.SimpleStorageAddr, -// }); -// }, 480000); - -// test("Should successfully return response: using yaml recipes", async () => { -// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ -// args: ["query", "./recipes/e2e.yaml", "--test-ens"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(0); -// expect(queryErr).toBe(""); - -// const constants = yaml.load( -// await fs.promises.readFile( -// `${projectRoot}/recipes/constants.yaml`, -// "utf8" -// ) -// ) as ISampleOutputOptions; - -// checkSampleQueryOutput(output, { -// SimpleStorageAddr: constants.SimpleStorageAddr, -// }); -// }, 480000); - -// test("Should successfully return response: using mix of yaml & json recipes", async () => { -// const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ -// args: ["query", "./recipes/e2e.json", "--test-ens"], -// cwd: projectRoot, -// cli: w3Cli, -// }); - -// expect(code).toEqual(0); -// expect(queryErr).toBe(""); - -// const constants = yaml.load( -// await fs.promises.readFile( -// `${projectRoot}/recipes/constants.yaml`, -// "utf8" -// ) -// ) as ISampleOutputOptions; - -// checkSampleQueryOutput(output, { -// SimpleStorageAddr: constants.SimpleStorageAddr, -// }); -// }, 480000); -// }); +import fs from "fs"; +import path from "path"; +import yaml from "js-yaml"; + +import { clearStyle, w3Cli } from "./utils"; + +import { runCLI } from "@web3api/test-env-js"; +import { normalizeLineEndings } from "@web3api/os-js"; +import { + checkSampleQueryOutput, + getSampleOutputWithClientConfig, + ISampleOutputOptions, +} from "./query.spec.helper"; + + +const projectRoot = path.resolve(__dirname, "../project/"); + +describe("sanity tests for query command", () => { + test("Should throw error for missing recipe-string", async () => { + const { exitCode, stdout, stderr } = await runCLI({ + args: ["query"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(exitCode).toEqual(0); + expect(stderr).toBe(""); + expect(stdout).toEqual(``); + }); + + test("Should throw error is --client-config doesn't contain arguments", async () => { + const { exitCode, stdout, stderr } = await runCLI({ + args: ["query", "./recipes/e2e.json", "--client-config"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(exitCode).toEqual(1); + expect(stderr).toBe("error: option '-c, --client-config ' argument missing\n"); + expect(stdout) + .toEqual(``); + }); + + + describe("e2e tests for query command", () => { + beforeAll(async () => { + const { exitCode: testenvCode, stderr: testEnvUpErr } = await runCLI({ + args: ["test-env", "up"], + cwd: projectRoot, + cli: w3Cli, + }); + expect(testEnvUpErr).toBe(""); + expect(testenvCode).toEqual(0); + + const { stderr: deployErr } = await runCLI({ + args: ["./deploy-contracts.js"], + cwd: projectRoot, + cli: " ", + }); + + expect(deployErr).toBe(""); + + const { exitCode: buildCode, stderr: buildErr } = await runCLI({ + args: [ + "build", + "--ipfs", + "http://localhost:5001", + "--test-ens", + "simplestorage.eth", + ], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(buildErr).toBe(""); + expect(buildCode).toEqual(0); + }); + + afterAll(async () => { + await runCLI({ + args: ["test-env", "down"], + cwd: projectRoot, + cli: w3Cli, + }); + }); + + test("Should use custom config for client if specified", async () => { + const configs = ["./client-config.ts", "./client-config.js"]; + + for (const config of configs) { + const { exitCode, stdout, stderr } = await runCLI({ + args: [ + "query", + "./recipes/e2e.json", + "--test-ens", + "--client-config", + config, + ], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + + expect(exitCode).toEqual(0); + expect(stderr).toBe(""); + + const constants = require(`${projectRoot}/recipes/constants.json`); + expect(clearStyle(normalizeLineEndings(stdout, "\n"))).toContain( + getSampleOutputWithClientConfig({ + SimpleStorageAddr: constants.SimpleStorageAddr, + }) + ); + } + }, 48000); + + test("Should successfully return response: using json recipes", async () => { + const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ + args: ["query", "./recipes/e2e.json", "--test-ens"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(queryErr).toBe(""); + + const constants = require(`${projectRoot}/recipes/constants.json`); + checkSampleQueryOutput(output, { + SimpleStorageAddr: constants.SimpleStorageAddr, + }); + }, 480000); + + test("Should successfully return response: using yaml recipes", async () => { + const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ + args: ["query", "./recipes/e2e.yaml", "--test-ens"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(queryErr).toBe(""); + + const constants = yaml.load( + await fs.promises.readFile( + `${projectRoot}/recipes/constants.yaml`, + "utf8" + ) + ) as ISampleOutputOptions; + + checkSampleQueryOutput(output, { + SimpleStorageAddr: constants.SimpleStorageAddr, + }); + }, 480000); + + test("Should successfully return response: using mix of yaml & json recipes", async () => { + const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ + args: ["query", "./recipes/e2e.json", "--test-ens"], + cwd: projectRoot, + cli: w3Cli, + }); + + expect(code).toEqual(0); + expect(queryErr).toBe(""); + + const constants = yaml.load( + await fs.promises.readFile( + `${projectRoot}/recipes/constants.yaml`, + "utf8" + ) + ) as ISampleOutputOptions; + + checkSampleQueryOutput(output, { + SimpleStorageAddr: constants.SimpleStorageAddr, + }); + }, 480000); + }) +}); diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index d62f8c2775..9398d83c5e 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -1,48 +1,31 @@ import { Command, Program } from "./types"; import { - // Compiler, - // Web3ApiProject, - // SchemaComposer, - // Watcher, - // WatchEvent, - // watchEventName, - // publishToIPFS, + Compiler, + Web3ApiProject, + SchemaComposer, + Watcher, + WatchEvent, + watchEventName, + publishToIPFS, intlMsg, - // getDockerFileLock, + getDockerFileLock, defaultWeb3ApiManifest, resolvePathIfExistsRefactor, - // getTestEnvProviders, + getTestEnvProviders, isDockerInstalled, } from "../lib"; -//import chalk from "chalk"; -// import axios from "axios"; -// import path from "path"; -// import readline from "readline"; +import axios from "axios"; +import path from "path"; +import readline from "readline"; +import { filesystem } from "gluegun"; const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); -// const defaultOutputDirectory = "./build"; -//const optionsStr = intlMsg.commands_build_options_options(); +const defaultOutputDirectory = "./build"; const nodeStr = intlMsg.commands_build_options_i_node(); const pathStr = intlMsg.commands_build_options_o_path(); const addrStr = intlMsg.commands_build_options_e_address(); const domStr = intlMsg.commands_build_options_e_domain(); -// const HELP = ` -// ${chalk.bold("w3 build")} [${optionsStr}] - -// ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: -// -h, --help ${intlMsg.commands_build_options_h()} -// -m, --manifest-file <${pathStr}> ${intlMsg.commands_build_options_m({ -// default: defaultManifestStr, -// })} -// -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_build_options_i()} -// -o, --output-dir <${pathStr}> ${intlMsg.commands_build_options_o()} -// -e, --test-ens <[${addrStr},]${domStr}> ${intlMsg.commands_build_options_e()} -// -w, --watch ${intlMsg.commands_build_options_w()} -// -v, --verbose ${intlMsg.commands_build_options_v()} -// `; - - export const build: Command = { setup: (program: Program) => { @@ -70,11 +53,11 @@ export const build: Command = { async function run(options: any) { let { manifestFile, - // ipfs, - // outputDir, - // watch, - // testEns, - // verbose, + ipfs, + outputDir, + watch, + testEns, + verbose, } = options; // Ensure docker is installed @@ -98,198 +81,201 @@ async function run(options: any) { return; } - // outputDir = - // (outputDir && filesystem.resolve(outputDir)) || - // filesystem.path(defaultOutputDirectory); - - // // Gather providers - // let ipfsProvider: string | undefined; - // let ethProvider: string | undefined; - // let ensAddress: string | undefined; - // let ensDomain: string | undefined; - - // if (typeof ipfs === "string") { - // // Custom IPFS provider - // ipfsProvider = ipfs; - // } else if (ipfs) { - // // Try to get the dev server's IPFS & ETH providers - // const testEnvProviders = await getTestEnvProviders(); - // ipfsProvider = testEnvProviders.ipfsProvider; - // ethProvider = testEnvProviders.ethProvider; - // } - - // if (typeof testEns == "string") { - // // Fetch the ENS domain, and optionally the address - // if (testEns.indexOf(",") > -1) { - // const [addr, dom] = testEns.split(","); - // ensAddress = addr; - // ensDomain = dom; - // } else { - // ensDomain = testEns; - // } - - // // If not address was provided, fetch it from the server - // // or deploy a new instance - // if (!ensAddress) { - // const getEns = await axios.get("http://localhost:4040/ens"); - - // if (!getEns.data.ensAddress) { - // const deployEns = await axios.get("http://localhost:4040/deploy-ens"); - // ensAddress = deployEns.data.ensAddress; - // } else { - // ensAddress = getEns.data.ensAddress; - // } - // } - // } - - // // Aquire a system-wide lock file for the docker service - // const dockerLock = getDockerFileLock(); - - // const project = new Web3ApiProject({ - // rootCacheDir: path.dirname(manifestFile), - // web3apiManifestPath: manifestFile, - // quiet: verbose ? false : true, - // }); - // await project.validate(); - - // const schemaComposer = new SchemaComposer({ - // project, - // ensAddress, - // ethProvider, - // ipfsProvider, - // }); - - // const compiler = new Compiler({ - // project, - // outputDir, - // schemaComposer, - // }); - - // const execute = async (): Promise => { - // compiler.reset(); - // const result = await compiler.compile(); - - // if (!result) { - // return result; - // } - - // const uris: string[][] = []; - - // // publish to IPFS - // if (ipfsProvider) { - // const cid = await publishToIPFS(outputDir, ipfsProvider); - - // console.log(`IPFS { ${cid} }`); - // uris.push(["Web3API IPFS", `ipfs://${cid}`]); - - // if (testEns) { - // if (!ensAddress) { - // uris.push([ - // intlMsg.commands_build_ensRegistry(), - // `${ethProvider}/${ensAddress}`, - // ]); - // } - - // // ask the dev server to publish the CID to ENS - // const { data } = await axios.get( - // "http://localhost:4040/register-ens", - // { - // params: { - // domain: ensDomain, - // cid, - // }, - // } - // ); - - // if (data.success) { - // uris.push(["Web3API ENS", `${testEns} => ${cid}`]); - // } else { - // console.log( - // `${intlMsg.commands_build_error_resolution()} { ${testEns} => ${cid} }\n` + - // `${intlMsg.commands_build_ethProvider()}: ${ethProvider}\n` + - // `${intlMsg.commands_build_address()}: ${ensAddress}` - // ); - // } - - // return data.success; - // } - - // if (uris.length) { - // console.log(`${intlMsg.commands_build_uriViewers()}:`); - // console.log(uris); - // return true; - // } else { - // return false; - // } - // } - - // return true; - // }; - - // if (!watch) { - // await dockerLock.request(); - // const result = await execute(); - // await dockerLock.release(); - - // if (!result) { - // process.exitCode = 1; - // return; - // } - // } else { - // // Execute - // await dockerLock.request(); - // await execute(); - // await dockerLock.release(); - - // const keyPressListener = () => { - // // Watch for escape key presses - // console.log( - // `${intlMsg.commands_build_keypressListener_watching()}: ${project.getManifestDir()}` - // ); - // console.log(intlMsg.commands_build_keypressListener_exit()); - // readline.emitKeypressEvents(process.stdin); - // process.stdin.on("keypress", async (str, key) => { - // if ( - // key.name == "escape" || - // key.name == "q" || - // (key.name == "c" && key.ctrl) - // ) { - // await watcher.stop(); - // await dockerLock.release(); - // process.kill(process.pid, "SIGINT"); - // } - // }); - - // if (process.stdin.setRawMode) { - // process.stdin.setRawMode(true); - // } - - // process.stdin.resume(); - // }; - - // keyPressListener(); - - // // Watch the directory - // const watcher = new Watcher(); - - // watcher.start(project.getManifestDir(), { - // ignored: [outputDir + "/**", project.getManifestDir() + "/**/w3/**"], - // ignoreInitial: true, - // execute: async (events: WatchEvent[]) => { - // // Log all of the events encountered - // for (const event of events) { - // console.log(`${watchEventName(event.type)}: ${event.path}`); - // } - - // // Execute the build - // await dockerLock.request(); - // await execute(); - // await dockerLock.release(); - - // // Process key presses - // keyPressListener(); - // }, - // }); - // } - // process.exitCode = 0; + outputDir = + (outputDir && filesystem.resolve(outputDir)) || + filesystem.path(defaultOutputDirectory); + + // Gather providers + let ipfsProvider: string | undefined; + let ethProvider: string | undefined; + let ensAddress: string | undefined; + let ensDomain: string | undefined; + + + if (typeof ipfs === "string") { + // Custom IPFS provider + ipfsProvider = ipfs; + } else if (ipfs) { + // Try to get the dev server's IPFS & ETH providers + const testEnvProviders = await getTestEnvProviders(); + ipfsProvider = testEnvProviders.ipfsProvider; + ethProvider = testEnvProviders.ethProvider; + } + + if (typeof testEns == "string") { + // Fetch the ENS domain, and optionally the address + if (testEns.indexOf(",") > -1) { + const [addr, dom] = testEns.split(","); + ensAddress = addr; + ensDomain = dom; + } else { + ensDomain = testEns; + } + + // If not address was provided, fetch it from the server + // or deploy a new instance + if (!ensAddress) { + const getEns = await axios.get("http://localhost:4040/ens"); + + if (!getEns.data.ensAddress) { + const deployEns = await axios.get("http://localhost:4040/deploy-ens"); + ensAddress = deployEns.data.ensAddress; + } else { + ensAddress = getEns.data.ensAddress; + } + } + } + + // Aquire a system-wide lock file for the docker service + const dockerLock = getDockerFileLock(); + + const project = new Web3ApiProject({ + rootCacheDir: path.dirname(manifestFile), + web3apiManifestPath: manifestFile, + quiet: verbose ? false : true, + }); + await project.validate(); + + const schemaComposer = new SchemaComposer({ + project, + ensAddress, + ethProvider, + ipfsProvider, + }); + + const compiler = new Compiler({ + project, + outputDir, + schemaComposer, + }); + + const execute = async (): Promise => { + compiler.reset(); + const result = await compiler.compile(); + + if (!result) { + return result; + } + + const uris: string[][] = []; + + // publish to IPFS + if (ipfsProvider) { + const cid = await publishToIPFS(outputDir, ipfsProvider); + + console.log(`IPFS { ${cid} }`); + uris.push(["Web3API IPFS", `ipfs://${cid}`]); + + if (testEns) { + if (!ensAddress) { + uris.push([ + intlMsg.commands_build_ensRegistry(), + `${ethProvider}/${ensAddress}`, + ]); + } + + // ask the dev server to publish the CID to ENS + const { data } = await axios.get( + "http://localhost:4040/register-ens", + { + params: { + domain: ensDomain, + cid, + }, + } + ); + + if (data.success) { + uris.push(["Web3API ENS", `${testEns} => ${cid}`]); + } else { + console.error( + `${intlMsg.commands_build_error_resolution()} { ${testEns} => ${cid} }\n` + + `${intlMsg.commands_build_ethProvider()}: ${ethProvider}\n` + + `${intlMsg.commands_build_address()}: ${ensAddress}` + ); + } + + return data.success; + } + + if (uris.length) { + console.log(`${intlMsg.commands_build_uriViewers()}:`); + console.table(uris); + return true; + } else { + return false; + } + } + + return true; + }; + + + if (!watch) { + await dockerLock.request(); + const result = await execute(); + await dockerLock.release(); + + if (!result) { + process.exitCode = 1; + return; + } + } else { + // Execute + await dockerLock.request(); + await execute(); + await dockerLock.release(); + + const keyPressListener = () => { + // Watch for escape key presses + console.log( + `${intlMsg.commands_build_keypressListener_watching()}: ${project.getManifestDir()}` + ); + console.log(intlMsg.commands_build_keypressListener_exit()); + readline.emitKeypressEvents(process.stdin); + process.stdin.on("keypress", async (str, key) => { + if ( + key.name == "escape" || + key.name == "q" || + (key.name == "c" && key.ctrl) + ) { + await watcher.stop(); + await dockerLock.release(); + process.kill(process.pid, "SIGINT"); + } + }); + + if (process.stdin.setRawMode) { + process.stdin.setRawMode(true); + } + + process.stdin.resume(); + }; + + keyPressListener(); + + // Watch the directory + const watcher = new Watcher(); + + watcher.start(project.getManifestDir(), { + ignored: [outputDir + "/**", project.getManifestDir() + "/**/w3/**"], + ignoreInitial: true, + execute: async (events: WatchEvent[]) => { + // Log all of the events encountered + for (const event of events) { + console.log(`${watchEventName(event.type)}: ${event.path}`); + } + + // Execute the build + await dockerLock.request(); + await execute(); + await dockerLock.release(); + + // Process key presses + keyPressListener(); + }, + }); + } + + process.exitCode = 0; } \ No newline at end of file diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index b032c529ef..9a2b910187 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -1,45 +1,24 @@ import { Command, Program } from "./types"; import { - // CodeGenerator, - // Compiler, - // Web3ApiProject, - // SchemaComposer, + CodeGenerator, + Compiler, + Web3ApiProject, + SchemaComposer, intlMsg, defaultWeb3ApiManifest, - // getTestEnvProviders, - // resolvePathIfExists, + getTestEnvProviders, + resolvePathIfExists, } from "../lib"; -// import chalk from "chalk"; -// import path from "path"; -// import { GluegunToolbox, GluegunPrint } from "gluegun"; +import path from "path"; +import { filesystem } from "gluegun"; const defaultCodegenDir = "./w3"; -// const optionsStr = intlMsg.commands_options_options(); const nodeStr = intlMsg.commands_codegen_options_i_node(); const pathStr = intlMsg.commands_codegen_options_o_path(); const addrStr = intlMsg.commands_codegen_options_e_address(); const defaultManifestStr = defaultWeb3ApiManifest.join(" | "); -// const HELP = ` -// ${chalk.bold("w3 codegen")} [${optionsStr}] - -// ${optionsStr[0].toUpperCase() + optionsStr.slice(1)}: -// -h, --help ${intlMsg.commands_codegen_options_h()} -// -m, --manifest-file <${pathStr}> ${intlMsg.commands_codegen_options_m( -// { -// default: defaultManifestStr, -// } -// )} -// -c, --codegen-dir <${pathStr}> ${intlMsg.commands_codegen_options_codegen( -// { -// default: defaultCodegenDir, -// } -// )} -// -s, --script <${pathStr}> ${intlMsg.commands_codegen_options_s()} -// -i, --ipfs [<${nodeStr}>] ${intlMsg.commands_codegen_options_i()} -// -e, --ens [<${addrStr}>] ${intlMsg.commands_codegen_options_e()} -// `; export const codegen: Command = { setup: (program: Program) => { @@ -67,162 +46,60 @@ export const codegen: Command = { } async function run(options: any) { + let { + manifestFile, + codegenDir, + script, + ipfs, + ens, + } = options; + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultWeb3ApiManifest + ); + + codegenDir = codegenDir && filesystem.resolve(codegenDir); + script = script && filesystem.resolve(script); + + // Web3Api Project + const project = new Web3ApiProject({ + rootCacheDir: path.dirname(manifestFile), + web3apiManifestPath: manifestFile, + }); + await project.validate(); + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + if (script) { + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + customScript: script, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + } else { + const compiler = new Compiler({ + project, + outputDir: filesystem.path("build"), + schemaComposer, + }); + + result = await compiler.codegen(); + } -} - - - - -// export default { -// alias: ["g"], -// description: intlMsg.commands_codegen_description(), -// run: async (toolbox: GluegunToolbox): Promise => { -// const { filesystem, parameters, print } = toolbox; - -// // Options -// const { h, m, c, s, i, e } = parameters.options; -// let { -// help, -// manifestFile, -// codegenDir, -// script, -// ipfs, -// ens, -// } = parameters.options; - -// help = help || h; -// manifestFile = manifestFile || m; -// codegenDir = codegenDir || c; -// script = script || s; -// ipfs = ipfs || i; -// ens = ens || e; - -// // Validate Params -// const paramsValid = validateCodegenParams( -// print, -// codegenDir, -// (dir: string) => (codegenDir = dir), -// script, -// ipfs, -// ens -// ); - -// if (help || !paramsValid) { -// print.info(HELP); -// if (!paramsValid) { -// process.exitCode = 1; -// } -// return; -// } - -// const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); -// const ensAddress: string | undefined = ens; - -// // Resolve manifest file -// manifestFile = resolvePathIfExists( -// filesystem, -// manifestFile ? [manifestFile] : defaultWeb3ApiManifest -// ); -// codegenDir = codegenDir && filesystem.resolve(codegenDir); -// script = script && filesystem.resolve(script); - -// // Web3Api Project -// const project = new Web3ApiProject({ -// rootCacheDir: path.dirname(manifestFile), -// web3apiManifestPath: manifestFile, -// }); -// await project.validate(); - -// const schemaComposer = new SchemaComposer({ -// project, -// ipfsProvider, -// ethProvider, -// ensAddress, -// }); - -// let result = false; - -// if (script) { -// const codeGenerator = new CodeGenerator({ -// project, -// schemaComposer, -// customScript: script, -// outputDir: codegenDir, -// }); - -// result = await codeGenerator.generate(); -// } else { -// const compiler = new Compiler({ -// project, -// outputDir: filesystem.path("build"), -// schemaComposer, -// }); - -// result = await compiler.codegen(); -// } - -// if (result) { -// print.success(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); -// process.exitCode = 0; -// } else { -// process.exitCode = 1; -// } -// }, -// }; - -// function validateCodegenParams( -// print: GluegunPrint, -// codegenDir: unknown, -// setCodegenDir: (dir: string) => void, -// script: unknown, -// ipfs: unknown, -// ens: unknown -// ): boolean { -// if (codegenDir === true) { -// const codegenDirMessage = intlMsg.commands_codegen_error_optionMissingArgument( -// { -// option: "--codegen-dir", -// argument: `<${pathStr}>`, -// } -// ); -// print.error(codegenDirMessage); -// return false; -// } else if (!codegenDir) { -// setCodegenDir(defaultCodegenDir); -// } - -// if (script === true) { -// const customScriptMissingPathMessage = intlMsg.commands_codegen_error_optionMissingArgument( -// { -// option: "--script", -// argument: `<${pathStr}>`, -// } -// ); -// print.error(customScriptMissingPathMessage); -// return false; -// } - -// if (ipfs === true) { -// const ipfsMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( -// { -// option: "--ipfs", -// argument: `[<${nodeStr}>]`, -// } -// ); -// print.error(ipfsMissingMessage); -// return false; -// } - -// if (ens === true) { -// const ensAddressMissingMessage = intlMsg.commands_codegen_error_optionMissingArgument( -// { -// option: "--ens", -// argument: `[<${addrStr}>]`, -// } -// ); -// print.error(ensAddressMissingMessage); -// return false; -// } - -// return true; -// } + if (result) { + console.log(`🔥 ${intlMsg.commands_codegen_success()} 🔥`); + process.exitCode = 0; + } else { + process.exitCode = 1; + } +} \ No newline at end of file diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 451650ffe9..e710338204 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -1,6 +1,7 @@ export * from "./app"; export * from "./build"; +export * from "./codegen"; export * from "./create"; -// export * from "./codegen"; +export * from "./plugin" export * from "./query"; export * from "./test-env"; \ No newline at end of file diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands/plugin.ts index 1eaf806896..af536ee00f 100644 --- a/packages/cli/src/commands/plugin.ts +++ b/packages/cli/src/commands/plugin.ts @@ -3,7 +3,6 @@ import { CodeGenerator, PluginProject, SchemaComposer, - fixParameters, resolvePathIfExists, defaultPluginManifest, outputManifest, @@ -13,12 +12,11 @@ import { import { ComposerFilter } from "@web3api/schema-compose"; import { writeFileSync } from "@web3api/os-js"; -import { GluegunPrint, GluegunToolbox, print } from "gluegun"; +import { filesystem } from "gluegun"; import chalk from "chalk"; import path from "path"; import fs from "fs"; -const commands = ["codegen"]; const defaultPublishDir = "./build"; const defaultCodegenDir = "./src/w3"; const cmdStr = intlMsg.commands_plugin_options_command(); @@ -53,202 +51,91 @@ const HELP = ` export const plugin: Command = { setup: (program: Program) => { - program + const pluginCommand = program .command("plugin") .alias("p") - - } -} + pluginCommand + .command("codegen") + .option(`-m, --manifest-file <${pathStr}>`, `${intlMsg.commands_plugin_options_m({ + default: defaultManifestStr, + })}`) + .option(`-p, --publish-dir <${pathStr}>`, `${intlMsg.commands_plugin_options_publish({ + default: defaultPublishDir, + })}`) + .option(`-c, --codegen-dir <${pathStr}>`, `${intlMsg.commands_plugin_options_codegen({ + default: defaultCodegenDir, + })}`) + .option(`-i, --ipfs [<${nodeStr}>]`, `${intlMsg.commands_plugin_options_i()}`) + .option(`-e, --ens [<${addrStr}>]`, `${intlMsg.commands_plugin_options_e()}`) + .action(async (options) => { + await run(options); + }); -export default { - alias: ["p"], - description: intlMsg.commands_plugin_description(), - run: async (toolbox: GluegunToolbox): Promise => { - const { filesystem, parameters } = toolbox; - - // Options - let { - help, - manifestFile, - publishDir, - codegenDir, - ipfs, - ens, - } = parameters.options; - const { h, m, p, c, i, e } = parameters.options; - - help = help || h; - manifestFile = manifestFile || m; - publishDir = publishDir || p; - codegenDir = codegenDir || c; - ipfs = ipfs || i; - ens = ens || e; - - // Command - let command: string | undefined; - try { - const params = parameters; - [command] = fixParameters( - { - options: params.options, - array: params.array, - }, - { - h, - help, - } - ); - // eslint-disable-next-line no-empty - } catch (e) { } - - // Validate Params - const paramsValid = validatePluginParams( - print, - command, - publishDir, - (dir) => (publishDir = dir), - codegenDir, - (dir) => (codegenDir = dir), - ipfs, - ens - ); - - if (help || !paramsValid) { - print.info(HELP); - if (!paramsValid) { - process.exitCode = 1; - } - return; - } - - const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); - const ensAddress: string | undefined = ens; - - manifestFile = resolvePathIfExists( - filesystem, - manifestFile ? [manifestFile] : defaultPluginManifest - ); - publishDir = publishDir && filesystem.resolve(publishDir); - codegenDir = codegenDir && filesystem.resolve(codegenDir); - - // Plugin project - const project = new PluginProject({ - rootCacheDir: path.dirname(manifestFile), - pluginManifestPath: manifestFile, - }); - await project.validate(); - const manifest = await project.getManifest(); - - const schemaComposer = new SchemaComposer({ - project, - ipfsProvider, - ethProvider, - ensAddress, - }); - - let result = false; - - const codeGenerator = new CodeGenerator({ - project, - schemaComposer, - outputDir: codegenDir, - }); - - result = await codeGenerator.generate(); - - if (result) { - process.exitCode = 0; - } else { - process.exitCode = 1; - } - - // Output the built schema & manifest - const schemas = await schemaComposer.getComposedSchemas( - ComposerFilter.Schema - ); - const publishSchemaPath = path.join(publishDir, "schema.graphql"); - const publishManifestPath = path.join(publishDir, "web3api.plugin.json"); - - if (!fs.existsSync(publishDir)) { - fs.mkdirSync(publishDir); - } - - writeFileSync(publishSchemaPath, schemas.combined.schema); - await outputManifest(manifest, publishManifestPath); - }, -}; - -function validatePluginParams( - print: GluegunPrint, - command: unknown, - publishDir: unknown, - setPublishDir: (dir: string) => void, - codegenDir: unknown, - setCodegenDir: (dir: string) => void, - ipfs: unknown, - ens: unknown -): boolean { - if (!command) { - print.error(intlMsg.commands_plugin_error_noCommand()); - return false; - } - - if (!command || typeof command !== "string") { - print.error(intlMsg.commands_plugin_error_noCommand()); - return false; - } else if (commands.indexOf(command) === -1) { - print.error(intlMsg.commands_plugin_error_unknownCommand({ command })); - return false; - } - if (publishDir === true) { - const publishDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--publish-dir", - argument: `<${pathStr}>`, - } - ); - print.error(publishDirMessage); - return false; - } else if (!publishDir) { - setPublishDir(defaultPublishDir); } - - if (codegenDir === true) { - const codegenDirMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--codegen-dir", - argument: `<${pathStr}>`, - } - ); - print.error(codegenDirMessage); - return false; - } else if (!codegenDir) { - setCodegenDir(defaultCodegenDir); +} +async function run(options: any) { + let { + manifestFile, + publishDir, + codegenDir, + ipfs, + ens, + } = options; + + const { ipfsProvider, ethProvider } = await getTestEnvProviders(ipfs); + const ensAddress: string | undefined = ens; + + manifestFile = resolvePathIfExists( + filesystem, + manifestFile ? [manifestFile] : defaultPluginManifest + ); + publishDir = publishDir && filesystem.resolve(publishDir); + codegenDir = codegenDir && filesystem.resolve(codegenDir); + + // Plugin project + const project = new PluginProject({ + rootCacheDir: path.dirname(manifestFile), + pluginManifestPath: manifestFile, + }); + await project.validate(); + const manifest = await project.getManifest(); + + const schemaComposer = new SchemaComposer({ + project, + ipfsProvider, + ethProvider, + ensAddress, + }); + + let result = false; + + const codeGenerator = new CodeGenerator({ + project, + schemaComposer, + outputDir: codegenDir, + }); + + result = await codeGenerator.generate(); + + if (result) { + process.exitCode = 0; + } else { + process.exitCode = 1; } - if (ipfs === true) { - const ipfsMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--ipfs", - argument: `[<${nodeStr}>]`, - } - ); - print.error(ipfsMissingMessage); - return false; - } + // Output the built schema & manifest + const schemas = await schemaComposer.getComposedSchemas( + ComposerFilter.Schema + ); + const publishSchemaPath = path.join(publishDir, "schema.graphql"); + const publishManifestPath = path.join(publishDir, "web3api.plugin.json"); - if (ens === true) { - const ensAddressMissingMessage = intlMsg.commands_plugin_error_optionMissingArgument( - { - option: "--ens", - argument: `[<${addrStr}>]`, - } - ); - print.error(ensAddressMissingMessage); - return false; + if (!fs.existsSync(publishDir)) { + fs.mkdirSync(publishDir); } - return true; -} + writeFileSync(publishSchemaPath, schemas.combined.schema); + await outputManifest(manifest, publishManifestPath); +} \ No newline at end of file diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 51cf6a20d2..f4b82b9b00 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,31 +1,30 @@ import { Command, Program } from "./types"; import { - // getTestEnvClientConfig, - // importTypescriptModule, - // validateClientConfig, - // fixParameters, + getTestEnvClientConfig, + importTypescriptModule, + validateClientConfig, intlMsg, } from "../lib"; -//import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; -//import chalk from "chalk"; -// import * as jetpack from "fs-jetpack"; +import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; +import chalk from "chalk"; +import * as jetpack from "fs-jetpack"; -// import gql from "graphql-tag"; -// import path from "path"; -// import yaml from "js-yaml"; +import gql from "graphql-tag"; +import path from "path"; +import yaml from "js-yaml"; -// const optionsString = intlMsg.commands_build_options_options(); -// const scriptStr = intlMsg.commands_create_options_recipeScript(); +const optionsString = intlMsg.commands_build_options_options(); +const scriptStr = intlMsg.commands_create_options_recipeScript(); const configPathStr = intlMsg.commands_query_options_configPath(); -// const HELP = ` -// ${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} +const HELP = ` +${chalk.bold("w3 query")} [${optionsString}] ${chalk.bold(`<${scriptStr}>`)} -// ${optionsString[0].toUpperCase() + optionsString.slice(1)}: -// -t, --test-ens ${intlMsg.commands_build_options_t()} -// -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} -// `; +${optionsString[0].toUpperCase() + optionsString.slice(1)}: + -t, --test-ens ${intlMsg.commands_build_options_t()} + -c, --client-config <${configPathStr}> ${intlMsg.commands_query_options_config()} +`; export const query: Command = { @@ -44,198 +43,180 @@ export const query: Command = { async function run(options: any) { - - // let { testEns, clientConfig } = options; - - // let recipePath; - // try { - // const params = options; - // [recipePath] = fixParameters( - // { - // options: options, - // array: params.array, - // }, - // { - // testEns, - // } - // ); - // } catch (e) { - // recipePath = null; - // console.error(e.message); - // process.exitCode = 1; - // return; - // } - - // if (!recipePath) { - // const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ - // script: `<${scriptStr}>`, - // }); - // console.error(scriptMissingMessage); - // console.info(HELP); - // return; - // } - - // if (clientConfig === true) { - // const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( - // { - // option: "--client-config", - // argument: `<${configPathStr}>`, - // } - // ); - // console.error(confgisMissingPathMessage); - // console.info(HELP); - // return; - // } - - // let finalClientConfig: Partial; - - // try { - // finalClientConfig = await getTestEnvClientConfig(); - // } catch (e) { - // console.error(intlMsg.commands_query_error_noTestEnvFound()); - // process.exitCode = 1; - // return; - // } - - // if (clientConfig) { - // let configModule; - // if (clientConfig.endsWith(".js")) { - // configModule = await import(path.resolve(clientConfig)); - // } else if (clientConfig.endsWith(".ts")) { - // configModule = await importTypescriptModule( - // path.resolve(clientConfig) - // ); - // } else { - // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( - // { module: clientConfig } - // ); - // console.error(configsModuleMissingExportMessage); - // process.exitCode = 1; - // return; - // } - - // if (!configModule || !configModule.getClientConfig) { - // const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( - // { module: configModule } - // ); - // console.error(configsModuleMissingExportMessage); - // process.exitCode = 1; - // return; - // } - - // finalClientConfig = configModule.getClientConfig(finalClientConfig); - - // try { - // validateClientConfig(finalClientConfig); - // } catch (e) { - // console.error(e.message); - // process.exitCode = 1; - // return; - // } - // } - - // const client = new Web3ApiClient(finalClientConfig); - - // function getParser(path: string) { - // return path.endsWith(".yaml") || path.endsWith(".yml") - // ? yaml.load - // : JSON.parse; - // } - - // const recipe = getParser(recipePath)(jetpack.read(recipePath) as string); - // const dir = path.dirname(recipePath); - // let uri = ""; - - // let constants: Record = {}; - // for (const task of recipe) { - // if (task.api) { - // uri = task.api; - // } - - // if (task.constants) { - // constants = getParser(task.constants)( - // jetpack.read(path.join(dir, task.constants)) as string - // ); - // } - - // if (task.query) { - // const query = jetpack.read(path.join(dir, task.query)); - - // if (!query) { - // const readFailMessage = intlMsg.commands_query_error_readFail({ - // query: query ?? "undefined", - // }); - // throw Error(readFailMessage); - // } - - // let variables: Record = {}; - - // if (task.variables) { - // const resolveObjectConstants = ( - // constants: Record - // ): Record => { - // const output: Record = {}; - - // Object.keys(constants).forEach((key: string) => { - // output[key] = resolveConstant(constants[key]); - // }); - - // return output; - // }; - - // const resolveArrayConstants = (arr: unknown[]): unknown[] => { - // return arr.map((item) => { - // return resolveConstant(item); - // }); - // }; - - // const resolveConstant = (constant: unknown): unknown => { - // if (typeof constant === "string" && constant[0] === "$") { - // return constants[constant.replace("$", "")]; - // } else if (Array.isArray(constant)) { - // return resolveArrayConstants(constant); - // } else if (typeof constant === "object") { - // return resolveObjectConstants( - // constant as Record - // ); - // } else { - // return constant; - // } - // }; - - // variables = resolveObjectConstants(task.variables); - // } - - // if (!uri) { - // throw Error(intlMsg.commands_query_error_noApi()); - // } - - // console.log("-----------------------------------"); - // console.log(query); - // console.log(JSON.stringify(variables, null, 2)); - // console.log("-----------------------------------"); - - // const { data, errors } = await client.query({ - // uri, - // query: gql(query), - // variables, - // }); - - // if (data && data !== {}) { - // console.log("-----------------------------------"); - // console.log(JSON.stringify(data, null, 2)); - // console.log("-----------------------------------"); - // } - - // if (errors) { - // for (const error of errors) { - // console.log("-----------------------------------"); - // console.log(error.message); - // console.log(error.stack || ""); - // console.log("-----------------------------------"); - // } - // process.exitCode = 1; - // } - // } - // } + let { clientConfig } = options; + + let recipePath; + + if (!recipePath) { + const scriptMissingMessage = intlMsg.commands_query_error_missingScript({ + script: `<${scriptStr}>`, + }); + console.error(scriptMissingMessage); + console.info(HELP); + return; + } + + if (clientConfig === true) { + const confgisMissingPathMessage = intlMsg.commands_query_error_clientConfigMissingPath( + { + option: "--client-config", + argument: `<${configPathStr}>`, + } + ); + console.error(confgisMissingPathMessage); + console.info(HELP); + return; + } + + let finalClientConfig: Partial; + + try { + finalClientConfig = await getTestEnvClientConfig(); + } catch (e) { + console.error(intlMsg.commands_query_error_noTestEnvFound()); + process.exitCode = 1; + return; + } + + if (clientConfig) { + let configModule; + if (clientConfig.endsWith(".js")) { + configModule = await import(path.resolve(clientConfig)); + } else if (clientConfig.endsWith(".ts")) { + configModule = await importTypescriptModule( + path.resolve(clientConfig) + ); + } else { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( + { module: clientConfig } + ); + console.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + if (!configModule || !configModule.getClientConfig) { + const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( + { module: configModule } + ); + console.error(configsModuleMissingExportMessage); + process.exitCode = 1; + return; + } + + finalClientConfig = configModule.getClientConfig(finalClientConfig); + + try { + validateClientConfig(finalClientConfig); + } catch (e) { + console.error(e.message); + process.exitCode = 1; + return; + } + } + + const client = new Web3ApiClient(finalClientConfig); + + function getParser(path: string) { + return path.endsWith(".yaml") || path.endsWith(".yml") + ? yaml.load + : JSON.parse; + } + + const recipe = getParser(recipePath)(jetpack.read(recipePath) as string); + const dir = path.dirname(recipePath); + let uri = ""; + + let constants: Record = {}; + for (const task of recipe) { + if (task.api) { + uri = task.api; + } + + if (task.constants) { + constants = getParser(task.constants)( + jetpack.read(path.join(dir, task.constants)) as string + ); + } + + if (task.query) { + const query = jetpack.read(path.join(dir, task.query)); + + if (!query) { + const readFailMessage = intlMsg.commands_query_error_readFail({ + query: query ?? "undefined", + }); + throw Error(readFailMessage); + } + + let variables: Record = {}; + + if (task.variables) { + const resolveObjectConstants = ( + constants: Record + ): Record => { + const output: Record = {}; + + Object.keys(constants).forEach((key: string) => { + output[key] = resolveConstant(constants[key]); + }); + + return output; + }; + + const resolveArrayConstants = (arr: unknown[]): unknown[] => { + return arr.map((item) => { + return resolveConstant(item); + }); + }; + + const resolveConstant = (constant: unknown): unknown => { + if (typeof constant === "string" && constant[0] === "$") { + return constants[constant.replace("$", "")]; + } else if (Array.isArray(constant)) { + return resolveArrayConstants(constant); + } else if (typeof constant === "object") { + return resolveObjectConstants( + constant as Record + ); + } else { + return constant; + } + }; + + variables = resolveObjectConstants(task.variables); + } + + if (!uri) { + throw Error(intlMsg.commands_query_error_noApi()); + } + + console.log("-----------------------------------"); + console.log(query); + console.log(JSON.stringify(variables, null, 2)); + console.log("-----------------------------------"); + + const { data, errors } = await client.query({ + uri, + query: gql(query), + variables, + }); + + if (data && data !== {}) { + console.log("-----------------------------------"); + console.log(JSON.stringify(data, null, 2)); + console.log("-----------------------------------"); + } + + if (errors) { + for (const error of errors) { + console.log("-----------------------------------"); + console.log(error.message); + console.log(error.stack || ""); + console.log("-----------------------------------"); + } + process.exitCode = 1; + } + } + } } \ No newline at end of file From 61c7742ce2981fecf5a50fe7e1bcbcb5389fed41 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Thu, 19 May 2022 21:15:45 +0530 Subject: [PATCH 13/23] debug: seems like commander parser logic is broken --- packages/cli/src/cli.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 079291258d..e5c53efb91 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -1,15 +1,17 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import * as Commands from "./commands"; -import { Command } from "./commands/types"; +// import { Command } from "./commands/types"; -import { executeMaybeAsyncFunction } from "@web3api/core-js"; +// import { executeMaybeAsyncFunction } from "@web3api/core-js"; import { program } from "commander"; export const run = async (argv: string[]): Promise => { - for (const command of Object.values(Commands) as Command[]) { - await executeMaybeAsyncFunction(command.setup, program); - } + // for (const command of Object.values(Commands) as Command[]) { + // await executeMaybeAsyncFunction(command.setup, program); + // } + Commands.app.setup(program); + Commands.plugin.setup(program); program.parse(argv); }; From d8e1636807351d4ba2e22bfbf97984aaa46efab1 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Thu, 19 May 2022 21:30:47 +0530 Subject: [PATCH 14/23] fix: use manual parsing until commander fixes it --- packages/cli/src/cli.ts | 12 ++++------ packages/cli/src/commands/app.ts | 23 +++++++++++-------- packages/cli/src/commands/build.ts | 23 +++++++++++-------- packages/cli/src/commands/codegen.ts | 28 ++++++++++++----------- packages/cli/src/commands/deploy.ts | 16 ++++++++----- packages/cli/src/commands/plugin.ts | 33 +++++++++++++++------------ packages/cli/src/commands/query.ts | 34 +++++++++++++++++----------- 7 files changed, 96 insertions(+), 73 deletions(-) diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index e5c53efb91..079291258d 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -1,17 +1,15 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import * as Commands from "./commands"; -// import { Command } from "./commands/types"; +import { Command } from "./commands/types"; -// import { executeMaybeAsyncFunction } from "@web3api/core-js"; +import { executeMaybeAsyncFunction } from "@web3api/core-js"; import { program } from "commander"; export const run = async (argv: string[]): Promise => { - // for (const command of Object.values(Commands) as Command[]) { - // await executeMaybeAsyncFunction(command.setup, program); - // } - Commands.app.setup(program); - Commands.plugin.setup(program); + for (const command of Object.values(Commands) as Command[]) { + await executeMaybeAsyncFunction(command.setup, program); + } program.parse(argv); }; diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index d2672a444a..366d2690a6 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -10,8 +10,8 @@ import { import { parseAppManifestFileOption, parseAppCodegenDirOption, - defaultAppCodegenDirOption, - defaultAppManifestFileOption, + // defaultAppCodegenDirOption, + // defaultAppManifestFileOption, } from "../lib/parsers"; import { Web3ApiClient } from "@web3api/client-js"; @@ -40,17 +40,13 @@ export const app: Command = { `-m, --manifest-file <${intlMsg.commands_codegen_options_o_path()}>`, intlMsg.commands_app_options_codegen({ default: defaultOutputTypesDir, - }), - parseAppManifestFileOption, - defaultAppManifestFileOption() + }) ) .option( `-c, --codegen-dir <${intlMsg.commands_codegen_options_o_path()}>`, `${intlMsg.commands_app_options_codegen({ default: defaultOutputTypesDir, - })}`, - parseAppCodegenDirOption, - defaultAppCodegenDirOption() + })}` ) .option( `-i, --ipfs [<${intlMsg.commands_codegen_options_i_node()}>] `, @@ -60,8 +56,15 @@ export const app: Command = { `-e, --ens [<${intlMsg.commands_codegen_options_e_address()}>]`, `${intlMsg.commands_codegen_options_e()}` ) - .action(async (options: AppCommandOptions) => { - await run(options); + .action(async (options) => { + await run({ + ...options, + manifestFile: parseAppManifestFileOption( + options.manifestFile, + undefined + ), + codegenDir: parseAppCodegenDirOption(options.codegenDir, undefined), + }); }); }, }; diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index d03da897d3..1957f204a4 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -13,9 +13,9 @@ import { } from "../lib"; import { parseWasmManifestFileOption, - defaultWasmManifestFileOption, + // defaultWasmManifestFileOption, parseBuildOutputDirOption, - defaultBuildOutputDirOption, + // defaultBuildOutputDirOption, } from "../lib/parsers"; import path from "path"; @@ -41,20 +41,23 @@ export const build: Command = { `-m, --manifest-file <${pathStr}>`, intlMsg.commands_build_options_m({ default: defaultManifestStr, - }), - parseWasmManifestFileOption, - defaultWasmManifestFileOption() + }) ) .option( `-o, --output-dir <${pathStr}>`, - `${intlMsg.commands_build_options_o()}`, - parseBuildOutputDirOption, - defaultBuildOutputDirOption() + `${intlMsg.commands_build_options_o()}` ) .option(`-w, --watch`, `${intlMsg.commands_build_options_w()}`) .option(`-v, --verbose`, `${intlMsg.commands_build_options_v()}`) - .action(async (options: BuildCommandOptions) => { - await run(options); + .action(async (options) => { + await run({ + ...options, + manifestFile: parseWasmManifestFileOption( + options.manifestFile, + undefined + ), + outputDir: parseBuildOutputDirOption(options.outputDir, undefined), + }); }); }, }; diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index 3488ed8383..1d1c6c4018 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -9,8 +9,8 @@ import { getTestEnvProviders, } from "../lib"; import { - defaultCodegenDirOption, - defaultWasmManifestFileOption, + // defaultCodegenDirOption, + // defaultWasmManifestFileOption, parseCodegenDirOption, parseCodegenScriptOption, parseWasmManifestFileOption, @@ -43,23 +43,17 @@ export const codegen: Command = { `-m, --manifest-file <${pathStr}>`, `${intlMsg.commands_codegen_options_m({ default: defaultManifestStr, - })}`, - parseWasmManifestFileOption, - defaultWasmManifestFileOption() + })}` ) .option( `-c, --codegen-dir <${pathStr}>`, ` ${intlMsg.commands_codegen_options_codegen({ default: defaultCodegenDir, - })}`, - parseCodegenDirOption, - defaultCodegenDirOption() + })}` ) .option( `-s, --script <${pathStr}>`, - `${intlMsg.commands_codegen_options_s()}`, - parseCodegenScriptOption, - defaultCodegenDirOption() + `${intlMsg.commands_codegen_options_s()}` ) .option( `-i, --ipfs [<${nodeStr}>]`, @@ -69,8 +63,16 @@ export const codegen: Command = { `-e, --ens [<${addrStr}>]`, `${intlMsg.commands_codegen_options_e()}` ) - .action(async (options: CodegenCommandOptions) => { - await run(options); + .action(async (options) => { + await run({ + ...options, + codegenDir: parseCodegenDirOption(options.codegenDir, undefined), + script: parseCodegenScriptOption(options.script, undefined), + manifestFile: parseWasmManifestFileOption( + options.manifestFile, + undefined + ), + }); }); }, }; diff --git a/packages/cli/src/commands/deploy.ts b/packages/cli/src/commands/deploy.ts index 1f64796b95..9ed2be4d0d 100644 --- a/packages/cli/src/commands/deploy.ts +++ b/packages/cli/src/commands/deploy.ts @@ -6,7 +6,7 @@ import { DeployPackage, } from "../lib"; import { - defaultWasmManifestFileOption, + // defaultWasmManifestFileOption, parseWasmManifestFileOption, } from "../lib/parsers"; import { DeployerHandler } from "../lib/deploy/deployer"; @@ -36,13 +36,17 @@ export const deploy: Command = { `-m, --manifest-file <${pathStr}>`, `${intlMsg.commands_plugin_options_m({ default: defaultManifestStr, - })}`, - parseWasmManifestFileOption, - defaultWasmManifestFileOption() + })}` ) .option(`-v, --verbose`, `${intlMsg.commands_deploy_options_v()}`) - .action(async (options: DeployCommandOptions) => { - await run(options); + .action(async (options) => { + await run({ + ...options, + manifestFile: parseWasmManifestFileOption( + options.manifestFile, + undefined + ), + }); }); }, }; diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands/plugin.ts index fae8f4fc4b..f9351dfb18 100644 --- a/packages/cli/src/commands/plugin.ts +++ b/packages/cli/src/commands/plugin.ts @@ -9,9 +9,6 @@ import { getTestEnvProviders, } from "../lib"; import { - defaultPluginCodegenDirOption, - defaultPluginManifestFileOption, - defaultPluginPublishDirOption, parsePluginCodegenDirOption, parsePluginManifestFileOption, parsePluginPublishDirOption, @@ -47,25 +44,19 @@ export const plugin: Command = { `-m, --manifest-file <${pathStr}>`, `${intlMsg.commands_plugin_options_m({ default: defaultManifestStr, - })}`, - parsePluginManifestFileOption, - defaultPluginManifestFileOption() + })}` ) .option( `-p, --publish-dir <${pathStr}>`, `${intlMsg.commands_plugin_options_publish({ default: defaultPublishDir, - })}`, - parsePluginPublishDirOption, - defaultPluginPublishDirOption() + })}` ) .option( `-c, --codegen-dir <${pathStr}>`, `${intlMsg.commands_plugin_options_codegen({ default: defaultCodegenDir, - })}`, - parsePluginCodegenDirOption, - defaultPluginCodegenDirOption() + })}` ) .option( `-i, --ipfs [<${nodeStr}>]`, @@ -75,8 +66,22 @@ export const plugin: Command = { `-e, --ens [<${addrStr}>]`, `${intlMsg.commands_plugin_options_e()}` ) - .action(async (options: PluginCommandOptions) => { - await run(options); + .action(async (options) => { + await run({ + ...options, + manifestFile: parsePluginManifestFileOption( + options.manifestFile, + undefined + ), + publishDir: parsePluginPublishDirOption( + options.publishDir, + undefined + ), + codegenDir: parsePluginCodegenDirOption( + options.codegenDir, + undefined + ), + }); }); }, }; diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 8cdeef6831..c06836b1c6 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,12 +1,17 @@ import { Command, Program } from "./types"; import { intlMsg } from "../lib"; +import { + // defaultClientConfigOption, + parseClientConfigOption, + parseRecipeOutputFilePathOption, + // parseRecipeScriptPathOption, +} from "../lib/parsers"; import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; import gql from "graphql-tag"; import path from "path"; import yaml from "js-yaml"; import fs from "fs"; -import { defaultClientConfigOption, parseClientConfigOption, parseRecipeOutputFilePathOption, parseRecipeScriptPathOption } from "../lib/parsers"; type QueryCommandOptions = { clientConfig: Partial; @@ -16,31 +21,34 @@ type QueryCommandOptions = { }; export const query: Command = { - setup: async (program: Program) => { + setup: (program: Program) => { program .command("query") .alias("q") .description(intlMsg.commands_query_description()) - .argument( - "", - intlMsg.commands_query_options_recipeScript(), - parseRecipeScriptPathOption - ) + .argument("", intlMsg.commands_query_options_recipeScript()) .option( `-c, --client-config <${intlMsg.commands_query_options_configPath}> `, - `${intlMsg.commands_query_options_config()}`, - parseClientConfigOption, - await defaultClientConfigOption() + `${intlMsg.commands_query_options_config()}` ) .option( `-o, --output-file <${intlMsg.commands_query_options_outputFilePath}>`, - `${intlMsg.commands_query_options_outputFile()}`, - parseRecipeOutputFilePathOption + `${intlMsg.commands_query_options_outputFile()}` ) .option(`-t, --test-ens`, `${intlMsg.commands_build_options_t()}`) .option(`-q, --quiet`, `${intlMsg.commands_query_options_quiet()}`) .action(async (recipe: string, options) => { - await run(recipe, options); + await run(recipe, { + ...options, + clientConfig: parseClientConfigOption( + options.clientConfig, + undefined + ), + outputFile: parseRecipeOutputFilePathOption( + options.outputFile, + undefined + ), + }); }); }, }; From 240e25fcc107cd7056cb6ec1a4131658df310a87 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Thu, 19 May 2022 21:36:04 +0530 Subject: [PATCH 15/23] fix: add build manifest for the cli codegen tests --- .../cases/cli/api/codegen/001-sanity/web3api.build.yaml | 6 ++++++ .../cases/cli/api/codegen/001-sanity/web3api.yaml | 1 + .../codegen/002-invalid-codegen-script/web3api.build.yaml | 6 ++++++ .../cli/api/codegen/002-invalid-codegen-script/web3api.yaml | 1 + .../cli/api/codegen/003-codegen-script/web3api.build.yaml | 6 ++++++ .../cases/cli/api/codegen/003-codegen-script/web3api.yaml | 1 + 6 files changed, 21 insertions(+) create mode 100644 packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.build.yaml create mode 100644 packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.build.yaml create mode 100644 packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.build.yaml diff --git a/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.build.yaml b/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.build.yaml new file mode 100644 index 0000000000..2cf967618b --- /dev/null +++ b/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.build.yaml @@ -0,0 +1,6 @@ +format: 0.0.1-prealpha.2 +config: + node_version: "14.16.0" +linked_packages: + - name: "@web3api/wasm-as" + path: ../../../../../../wasm/as diff --git a/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.yaml b/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.yaml index 9a25b251fc..e7880e1e3a 100644 --- a/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.yaml +++ b/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api.yaml @@ -1,5 +1,6 @@ format: 0.0.1-prealpha.7 name: test-project +build: ./web3api.build.yaml language: wasm/assemblyscript modules: mutation: diff --git a/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.build.yaml b/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.build.yaml new file mode 100644 index 0000000000..2cf967618b --- /dev/null +++ b/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.build.yaml @@ -0,0 +1,6 @@ +format: 0.0.1-prealpha.2 +config: + node_version: "14.16.0" +linked_packages: + - name: "@web3api/wasm-as" + path: ../../../../../../wasm/as diff --git a/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.yaml b/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.yaml index 9a25b251fc..e7880e1e3a 100644 --- a/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.yaml +++ b/packages/test-cases/cases/cli/api/codegen/002-invalid-codegen-script/web3api.yaml @@ -1,5 +1,6 @@ format: 0.0.1-prealpha.7 name: test-project +build: ./web3api.build.yaml language: wasm/assemblyscript modules: mutation: diff --git a/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.build.yaml b/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.build.yaml new file mode 100644 index 0000000000..2cf967618b --- /dev/null +++ b/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.build.yaml @@ -0,0 +1,6 @@ +format: 0.0.1-prealpha.2 +config: + node_version: "14.16.0" +linked_packages: + - name: "@web3api/wasm-as" + path: ../../../../../../wasm/as diff --git a/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.yaml b/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.yaml index 9a25b251fc..e7880e1e3a 100644 --- a/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.yaml +++ b/packages/test-cases/cases/cli/api/codegen/003-codegen-script/web3api.yaml @@ -1,5 +1,6 @@ format: 0.0.1-prealpha.7 name: test-project +build: ./web3api.build.yaml language: wasm/assemblyscript modules: mutation: From 0d824302a059d09a73acf4651798d054f5fd3ecf Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Fri, 20 May 2022 01:17:16 +0530 Subject: [PATCH 16/23] fix(cli): tests --- packages/cli/src/__tests__/e2e/app.spec.ts | 18 ++- packages/cli/src/__tests__/e2e/build.spec.ts | 22 ++-- .../cli/src/__tests__/e2e/codegen.spec.ts | 2 +- packages/cli/src/__tests__/e2e/create.spec.ts | 46 ++++---- packages/cli/src/__tests__/e2e/deploy.spec.ts | 12 +- packages/cli/src/__tests__/e2e/help.spec.ts | 25 ++-- .../cli/src/__tests__/e2e/no-command.spec.ts | 18 +-- packages/cli/src/__tests__/e2e/plugin.spec.ts | 41 +++---- packages/cli/src/__tests__/e2e/query.spec.ts | 107 +++++++++++------- .../cli/src/__tests__/e2e/test-env.spec.ts | 27 +++-- packages/cli/src/commands/create.ts | 21 +++- packages/cli/src/commands/deploy.ts | 2 +- packages/cli/src/commands/index.ts | 1 + packages/cli/src/commands/query.ts | 11 +- packages/cli/src/lib/manifest/app/load.ts | 4 - packages/cli/src/lib/parsers/query.ts | 4 +- .../codegen/001-sanity/web3api-norun.gen.js | 0 17 files changed, 186 insertions(+), 175 deletions(-) create mode 100644 packages/test-cases/cases/cli/api/codegen/001-sanity/web3api-norun.gen.js diff --git a/packages/cli/src/__tests__/e2e/app.spec.ts b/packages/cli/src/__tests__/e2e/app.spec.ts index c4f6b3557c..ded371d593 100644 --- a/packages/cli/src/__tests__/e2e/app.spec.ts +++ b/packages/cli/src/__tests__/e2e/app.spec.ts @@ -6,20 +6,16 @@ import path from "path"; import fs from "fs"; -const HELP = `Usage: w3 app codegen [options] +const HELP = `Usage: w3 app|a [options] [command] -Generate code for the app +Build/generate types for your app Options: - -m, --manifest-file Output directory for the generated code (default: - ./src/w3) - -c, --codegen-dir Output directory for the generated code (default: - ./src/w3) - -i, --ipfs [] IPFS node to load external schemas (default: - ipfs.io & localhost) - -e, --ens [
] ENS address to lookup external schemas (default: - 0x0000...2e1e) - -h, --help display help for command + -h, --help display help for command + +Commands: + codegen [options] Generate code for the app + help [command] display help for command ` const CODEGEN_SUCCESS = `- Manifest loaded from ./web3api.app.yaml diff --git a/packages/cli/src/__tests__/e2e/build.spec.ts b/packages/cli/src/__tests__/e2e/build.spec.ts index b50e71242f..18c2469e0e 100644 --- a/packages/cli/src/__tests__/e2e/build.spec.ts +++ b/packages/cli/src/__tests__/e2e/build.spec.ts @@ -8,21 +8,17 @@ import path from "path"; const HELP = `Usage: w3 build|b [options] -Builds a Web3API and (optionally) uploads it to IPFS +Builds a Web3API Options: - -m, --manifest-file Path to the Web3API Build manifest file - (default: web3api.yaml | web3api.yml) - -i, --ipfs [] Upload build results to an IPFS node - (default: dev-server's node) - -o, --output-dir Output directory for build results - (default: build/) - -e, --test-ens <[address,]domain> Publish the package to a test ENS domain - locally (requires --ipfs) - -w, --watch Automatically rebuild when changes are - made (default: false) - -v, --verbose Verbose output (default: false) - -h, --help display help for command + -m, --manifest-file Path to the Web3API Build manifest file (default: + web3api.yaml | web3api.yml) + -o, --output-dir Output directory for build results (default: + build/) + -w, --watch Automatically rebuild when changes are made + (default: false) + -v, --verbose Verbose output (default: false) + -h, --help display help for command `; describe("e2e tests for build command", () => { diff --git a/packages/cli/src/__tests__/e2e/codegen.spec.ts b/packages/cli/src/__tests__/e2e/codegen.spec.ts index c68cb6ba59..cbd0422cf5 100644 --- a/packages/cli/src/__tests__/e2e/codegen.spec.ts +++ b/packages/cli/src/__tests__/e2e/codegen.spec.ts @@ -101,7 +101,7 @@ describe("e2e tests for codegen command", () => { cli: w3Cli, }); - expect(code).toEqual(1); + expect(code).toEqual(0); expect(error).toBe(""); expect(clearStyle(output)).toContain( `🔥 Types were generated successfully 🔥` diff --git a/packages/cli/src/__tests__/e2e/create.spec.ts b/packages/cli/src/__tests__/e2e/create.spec.ts index cbcef72171..cd950bef41 100644 --- a/packages/cli/src/__tests__/e2e/create.spec.ts +++ b/packages/cli/src/__tests__/e2e/create.spec.ts @@ -8,16 +8,15 @@ const HELP = `Usage: w3 create|c [options] [command] Create a new project with w3 CLI Options: - -h, --help display help for command + -h, --help display help for command Commands: - api [options] Create a Web3API project langs: - assemblyscript, interface - app [options] Create a Web3API application langs: - typescript-node, typescript-react - plugin [options] Create a Web3API plugin langs: - typescript - help [command] display help for command + api [options] Create a Web3API project langs: + assemblyscript, interface + app [options] Create a Web3API application langs: + typescript-node, typescript-react + plugin [options] Create a Web3API plugin langs: typescript + help [command] display help for command `; describe("e2e tests for create command", () => { @@ -39,9 +38,8 @@ describe("e2e tests for create command", () => { }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a command -${HELP}`); + expect(error).toBe(HELP); + expect(output).toBe(""); }); test("Should throw error for missing parameter - lang", async () => { @@ -51,9 +49,8 @@ ${HELP}`); }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a language -${HELP}`); + expect(error).toContain("error: unknown command 'type'"); + expect(output).toBe(""); }); test("Should throw error for missing parameter - name", async () => { @@ -63,9 +60,8 @@ ${HELP}`); }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Please provide a project name -${HELP}`); + expect(error).toContain("error: unknown command 'type'"); + expect(output).toBe(""); }); test("Should throw error for invalid parameter - type", async () => { @@ -75,9 +71,8 @@ ${HELP}`); }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized command "unknown" -${HELP}`); + expect(error).toContain("error: unknown command 'unknown'"); + expect(output).toBe(""); }); test("Should throw error for invalid parameter - lang", async () => { @@ -87,9 +82,8 @@ ${HELP}`); }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized language "unknown" -${HELP}`); + expect(error).toContain("error: command-argument value 'unknown' is invalid for argument 'language'. Allowed choices are assemblyscript, interface."); + expect(output).toBe(""); }); test("Should throw error for invalid parameter - output-dir", async () => { @@ -99,10 +93,8 @@ ${HELP}`); }); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--output-dir option missing argument -${HELP}`); + expect(error).toContain("error: option '-o, --output-dir ' argument missing"); + expect(output).toBe(""); }); test("Should successfully generate project", async () => { diff --git a/packages/cli/src/__tests__/e2e/deploy.spec.ts b/packages/cli/src/__tests__/e2e/deploy.spec.ts index b63e0fd391..4e5ef370a5 100644 --- a/packages/cli/src/__tests__/e2e/deploy.spec.ts +++ b/packages/cli/src/__tests__/e2e/deploy.spec.ts @@ -15,13 +15,15 @@ import yaml from "js-yaml"; import path from "path"; import fs from "fs"; -const HELP = ` -w3 deploy [options] +const HELP = `Usage: w3 deploy|d [options] + +Deploys/Publishes a Web3API Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API Deploy manifest file (default: web3api.yaml | web3api.yml) - -v, --verbose Verbose output (default: false) + -m, --manifest-file Path to the Web3API Plugin manifest file + (default: web3api.yaml | web3api.yml) + -v, --verbose Verbose output (default: false) + -h, --help display help for command `; const testCaseRoot = path.join(GetPathToCliTestFiles(), "api/deploy"); diff --git a/packages/cli/src/__tests__/e2e/help.spec.ts b/packages/cli/src/__tests__/e2e/help.spec.ts index e55a42f595..39fca924d6 100644 --- a/packages/cli/src/__tests__/e2e/help.spec.ts +++ b/packages/cli/src/__tests__/e2e/help.spec.ts @@ -2,17 +2,20 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -const HELP = ` - w3 🔥 Web3API CLI 🔥 - help (h) - - test-env (t) Manage a test environment for Web3API - query (q) Query Web3APIs using recipe scripts - plugin (p) Build/generate types for the plugin - deploy (b) Deploys/Publishes a Web3API - create (c) Create a new project with w3 CLI - codegen (g) Auto-generate API Types - build (b) Builds a Web3API - app (a) Build/generate types for your app +const HELP = `Usage: w3 [options] [command] + +Options: + -h, --help display help for command + +Commands: + app|a Build/generate types for your app + build|b [options] Builds a Web3API + codegen|g [options] Auto-generate API Types + create|c Create a new project with w3 CLI + plugin|p + query|q [options] Query Web3APIs using recipe scripts + test-env|t Manage a test environment for Web3API + help [command] display help for command `; describe("e2e tests for no help", () => { diff --git a/packages/cli/src/__tests__/e2e/no-command.spec.ts b/packages/cli/src/__tests__/e2e/no-command.spec.ts index a7a798460c..ae7cd01674 100644 --- a/packages/cli/src/__tests__/e2e/no-command.spec.ts +++ b/packages/cli/src/__tests__/e2e/no-command.spec.ts @@ -6,16 +6,18 @@ import { runCLI } from "@web3api/test-env-js"; const HELP = `Usage: w3 [options] [command] Options: - -h, --help display help for command + -h, --help display help for command Commands: - app|a Build/generate types for your app - build|b [options] Builds a Web3API and (optionally) uploads it to IPFS - codegen|g [options] Auto-generate API Types - query|q [options] Query Web3APIs using recipe scripts - test-env|t Manage a test environment for Web3API - help [command] display help for command -` + app|a Build/generate types for your app + build|b [options] Builds a Web3API + codegen|g [options] Auto-generate API Types + create|c Create a new project with w3 CLI + plugin|p + query|q [options] Query Web3APIs using recipe scripts + test-env|t Manage a test environment for Web3API + help [command] display help for command +`; describe("e2e tests for no command", () => { diff --git a/packages/cli/src/__tests__/e2e/plugin.spec.ts b/packages/cli/src/__tests__/e2e/plugin.spec.ts index 9ded1e492f..8c35416c45 100644 --- a/packages/cli/src/__tests__/e2e/plugin.spec.ts +++ b/packages/cli/src/__tests__/e2e/plugin.spec.ts @@ -1,4 +1,3 @@ -import { defaultPluginManifest } from "../../lib"; import { clearStyle } from "./utils"; import { runCLI } from "@web3api/test-env-js"; @@ -7,22 +6,14 @@ import { compareSync } from "dir-compare"; import path from "path"; import fs from "fs"; -const HELP = ` -w3 plugin command [options] - -Commands: - codegen Generate code for the plugin +const HELP = `Usage: w3 plugin|p [options] [command] Options: - -h, --help Show usage information - -m, --manifest-file Path to the Web3API Plugin manifest file (default: ${defaultPluginManifest.join( - " | " - )}) - -p, --publish-dir Output path for the built schema and manifest (default: ./build) - -c, --codegen-dir Output directory for the generated types (default: ./src/w3) - -i, --ipfs [] IPFS node to load external schemas (default: dev-server's node) - -e, --ens [
] ENS address to lookup external schemas (default: 0x0000...2e1e) + -h, --help display help for command +Commands: + codegen [options] + help [command] display help for command `; const CODEGEN_SUCCESS = `- Manifest loaded from ./web3api.plugin.yaml @@ -56,7 +47,7 @@ describe("e2e tests for plugin command", () => { }); test("Should throw error for invalid params - no command", async () => { - const { exitCode: code, stdout: output } = await runCLI( + const { exitCode: code, stderr: error, stdout: output } = await runCLI( { args: ["plugin", "--codegen-dir"], cwd: getTestCaseDir(0), @@ -64,7 +55,8 @@ describe("e2e tests for plugin command", () => { ); expect(code).toEqual(1); - expect(clearStyle(output)).toEqual("Please provide a command\n" + HELP); + expect(error).toContain("error: unknown option '--codegen-dir'"); + expect(output).toBe(""); }); test("Should throw error for invalid params - publish-dir", async () => { @@ -76,9 +68,8 @@ describe("e2e tests for plugin command", () => { ); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual("--publish-dir option missing argument\n" + HELP); + expect(error).toContain("error: option '-p, --publish-dir ' argument missing"); + expect(output).toBe(""); }); test("Should throw error for invalid params - codegen-dir", async () => { @@ -90,10 +81,8 @@ describe("e2e tests for plugin command", () => { ); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--codegen-dir option missing argument -${HELP}`); + expect(error).toContain("error: option '-c, --codegen-dir ' argument missing"); + expect(output).toBe(""); }); test("Should throw error for invalid params - ens", async () => { @@ -105,10 +94,8 @@ ${HELP}`); ); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--ens option missing [
] argument -${HELP}`); + expect(error).toContain("error: option '-e, --ens [
]' argument missing"); + expect(output).toBe(""); }); describe("test-cases", () => { diff --git a/packages/cli/src/__tests__/e2e/query.spec.ts b/packages/cli/src/__tests__/e2e/query.spec.ts index fda138411c..eaca3763f2 100644 --- a/packages/cli/src/__tests__/e2e/query.spec.ts +++ b/packages/cli/src/__tests__/e2e/query.spec.ts @@ -4,7 +4,11 @@ import yaml from "js-yaml"; import { clearStyle, w3Cli } from "./utils"; -import { buildAndDeployApi, initTestEnvironment, runCLI } from "@web3api/test-env-js"; +import { + buildAndDeployApi, + initTestEnvironment, + runCLI, +} from "@web3api/test-env-js"; import { GetPathToCliTestFiles } from "@web3api/test-cases"; import { normalizeLineEndings } from "@web3api/os-js"; import { @@ -16,44 +20,61 @@ import { jest.setTimeout(200000); -const HELP = ` -w3 query [options] +const HELP = `Usage: w3 query|q [options] -Options: - -h, --help Show usage information - -t, --test-ens Use the development server's ENS instance - -c, --client-config Add custom configuration to the Web3ApiClient - -o, --output-file Output file path for the query result - -q, --quiet Suppress output +Query Web3APIs using recipe scripts +Arguments: + recipe Path to recipe script + +Options: + -c, --client-config Add custom configuration to the + Web3ApiClient + -o, --output-file Output file path for the query result + -t, --test-ens Use the development server's ENS + instance + -q, --quiet Suppress output + -h, --help display help for command `; describe("sanity tests for query command", () => { const testCaseRoot = path.join(GetPathToCliTestFiles(), "api/query"); + test("Should show help text", async () => { + const { exitCode: code, stdout: output, stderr: error } = await runCLI({ + args: ["query", "--help"], + cwd: testCaseRoot, + }); + + expect(code).toEqual(0); + expect(error).toBe(""); + expect(clearStyle(output)).toEqual(HELP); + }); + test("Should throw error for missing recipe-string", async () => { - const { exitCode, stdout, stderr } = await runCLI({ - args: ["query"], - cwd: testCaseRoot, - cli: w3Cli, - }); + const { exitCode, stdout, stderr } = await runCLI({ + args: ["query"], + cwd: testCaseRoot, + cli: w3Cli, + }); - expect(exitCode).toEqual(0); - expect(stderr).toBe(""); - expect(stdout).toEqual(``); + expect(exitCode).toEqual(1); + expect(stderr).toContain("error: missing required argument 'recipe"); + expect(stdout).toEqual(``); }); test("Should throw error is --client-config doesn't contain arguments", async () => { - const { exitCode, stdout, stderr } = await runCLI({ - args: ["query", "./recipes/e2e.json", "--client-config"], - cwd: testCaseRoot, - cli: w3Cli, - }); + const { exitCode, stdout, stderr } = await runCLI({ + args: ["query", "./recipes/e2e.json", "--client-config"], + cwd: testCaseRoot, + cli: w3Cli, + }); - expect(exitCode).toEqual(1); - expect(stderr).toBe("error: option '-c, --client-config ' argument missing\n"); - expect(stdout) - .toEqual(``); + expect(exitCode).toEqual(1); + expect(stderr).toBe( + "error: option '-c, --client-config ' argument missing\n" + ); + expect(stdout).toEqual(``); }); }); @@ -66,7 +87,7 @@ describe("e2e tests for query command", () => { ethereum, ensAddress: ens, registrarAddress, - resolverAddress + resolverAddress, } = await initTestEnvironment(); const { stderr: deployErr } = await runCLI({ @@ -85,7 +106,7 @@ describe("e2e tests for query command", () => { ensResolverAddress: resolverAddress, ensRegistryAddress: ens, ensName: "simplestorage", - }) + }); }); afterAll(async () => { @@ -178,12 +199,12 @@ describe("e2e tests for query command", () => { }); expect(fs.existsSync(`${testCaseRoot}/recipes/output.json`)).toBeTruthy(); - const arr: Array = JSON.parse(fs.readFileSync(`${testCaseRoot}/recipes/output.json`, "utf8")) + const arr: Array = JSON.parse( + fs.readFileSync(`${testCaseRoot}/recipes/output.json`, "utf8") + ); expect(Array.isArray(arr)).toBeTruthy(); - expect( - arr[2] - ).toMatchObject(getSampleObjectOutput()); + expect(arr[2]).toMatchObject(getSampleObjectOutput()); fs.unlinkSync(`${testCaseRoot}/recipes/output.json`); }, 48000); @@ -216,25 +237,18 @@ describe("e2e tests for query command", () => { }); expect(fs.existsSync(`${testCaseRoot}/recipes/output.yaml`)).toBeTruthy(); - const arr: Array = yaml.load( + const arr: Array = (yaml.load( fs.readFileSync(`${testCaseRoot}/recipes/output.yaml`, "utf8") - ) as unknown as Array; + ) as unknown) as Array; expect(Array.isArray(arr)).toBeTruthy(); - expect( - arr[2] - ).toMatchObject(getSampleObjectOutput()); + expect(arr[2]).toMatchObject(getSampleObjectOutput()); fs.unlinkSync(`${testCaseRoot}/recipes/output.yaml`); }, 48000); test("Should suppress the ouput if --quiet option is specified", async () => { const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ - args: [ - "query", - "./recipes/e2e.json", - "--test-ens", - "--quiet", - ], + args: ["query", "./recipes/e2e.json", "--test-ens", "--quiet"], cwd: testCaseRoot, cli: w3Cli, }); @@ -245,7 +259,12 @@ describe("e2e tests for query command", () => { }, 48000); test("Should use custom config for client if specified", async () => { - const configs = ["./client-config.ts", "./client-config.js", "./client-async-config.ts", "./client-async-config.js"]; + const configs = [ + "./client-config.ts", + "./client-config.js", + "./client-async-config.ts", + "./client-async-config.js", + ]; for (const config of configs) { const { exitCode, stdout, stderr } = await runCLI({ diff --git a/packages/cli/src/__tests__/e2e/test-env.spec.ts b/packages/cli/src/__tests__/e2e/test-env.spec.ts index a74f86f9f2..e09b966b55 100644 --- a/packages/cli/src/__tests__/e2e/test-env.spec.ts +++ b/packages/cli/src/__tests__/e2e/test-env.spec.ts @@ -2,16 +2,17 @@ import { clearStyle, w3Cli } from "./utils"; import { runCLI } from "@web3api/test-env-js"; -const HELP = ` -w3 test-env command +const HELP = `Usage: w3 test-env|t [options] [command] -Commands: - up Startup the test env - down Shutdown the test env +Manage a test environment for Web3API Options: - -h, --help Show usage information + -h, --help display help for command +Commands: + up Startup the test env + down Shutdown the test env + help [command] display help for command `; describe("e2e tests for test-env command", () => { @@ -32,10 +33,9 @@ describe("e2e tests for test-env command", () => { cli: w3Cli, }); - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`No command given -${HELP}`); + expect(code).toEqual(1); + expect(error).toBe(HELP); + expect(output).toBe(""); }); test("Should throw error for unrecognized command", async () => { @@ -44,10 +44,9 @@ ${HELP}`); cli: w3Cli, }); - expect(code).toEqual(0); - expect(error).toBe(""); - expect(clearStyle(output)).toEqual(`Unrecognized command: unknown -${HELP}`); + expect(code).toEqual(1); + expect(error).toContain("error: unknown command 'unknown'"); + expect(output).toBe(""); }); test("Should successfully start test environment", async () => { diff --git a/packages/cli/src/commands/create.ts b/packages/cli/src/commands/create.ts index 16a640741b..5524d89218 100644 --- a/packages/cli/src/commands/create.ts +++ b/packages/cli/src/commands/create.ts @@ -2,6 +2,7 @@ import { Command, Program } from "./types"; import { generateProjectTemplate, intlMsg } from "../lib"; import { prompt, filesystem } from "gluegun"; +import { Argument } from "commander"; const nameStr = intlMsg.commands_create_options_projectName(); const langStr = intlMsg.commands_create_options_lang(); @@ -31,10 +32,16 @@ export const create: Command = { .description(intlMsg.commands_create_description()); createCommand - .command(`api <${langStr}> <${nameStr}>`) + .command("api") .description( `${createProjStr} ${langsStr}: ${supportedLangs.api.join(", ")}` ) + .addArgument( + new Argument("", langStr) + .choices(supportedLangs.api) + .argRequired() + ) + .addArgument(new Argument("", nameStr).argRequired()) .option( `-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}` @@ -44,10 +51,15 @@ export const create: Command = { }); createCommand - .command(`app <${langStr}>`) + .command("app") .description( `${createAppStr} ${langsStr}: ${supportedLangs.app.join(", ")}` ) + .addArgument( + new Argument("", langStr) + .choices(supportedLangs.app) + .argRequired() + ) .option( `-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}` @@ -61,6 +73,11 @@ export const create: Command = { .description( `${createPluginStr} ${langsStr}: ${supportedLangs.plugin.join(", ")}` ) + .addArgument( + new Argument("", langStr) + .choices(supportedLangs.plugin) + .argRequired() + ) .option( `-o, --output-dir <${pathStr}>`, `${intlMsg.commands_create_options_o()}` diff --git a/packages/cli/src/commands/deploy.ts b/packages/cli/src/commands/deploy.ts index 9ed2be4d0d..0594b65733 100644 --- a/packages/cli/src/commands/deploy.ts +++ b/packages/cli/src/commands/deploy.ts @@ -51,7 +51,7 @@ export const deploy: Command = { }, }; -export async function run(options: DeployCommandOptions): Promise { +async function run(options: DeployCommandOptions): Promise { const { manifestFile, verbose } = options; const project = new Web3ApiProject({ diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 4c9cd1fcc1..5c76003da2 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -2,6 +2,7 @@ export * from "./app"; export * from "./build"; export * from "./codegen"; export * from "./create"; +export * from "./deploy"; export * from "./plugin"; export * from "./query"; export * from "./test-env"; diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index c06836b1c6..d155de4d4f 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -28,11 +28,11 @@ export const query: Command = { .description(intlMsg.commands_query_description()) .argument("", intlMsg.commands_query_options_recipeScript()) .option( - `-c, --client-config <${intlMsg.commands_query_options_configPath}> `, + `-c, --client-config <${intlMsg.commands_query_options_configPath()}> `, `${intlMsg.commands_query_options_config()}` ) .option( - `-o, --output-file <${intlMsg.commands_query_options_outputFilePath}>`, + `-o, --output-file <${intlMsg.commands_query_options_outputFilePath()}>`, `${intlMsg.commands_query_options_outputFile()}` ) .option(`-t, --test-ens`, `${intlMsg.commands_build_options_t()}`) @@ -44,10 +44,9 @@ export const query: Command = { options.clientConfig, undefined ), - outputFile: parseRecipeOutputFilePathOption( - options.outputFile, - undefined - ), + outputFile: options.outputFile + ? parseRecipeOutputFilePathOption(options.outputFile, undefined) + : undefined, }); }); }, diff --git a/packages/cli/src/lib/manifest/app/load.ts b/packages/cli/src/lib/manifest/app/load.ts index 83431be03d..5158774198 100644 --- a/packages/cli/src/lib/manifest/app/load.ts +++ b/packages/cli/src/lib/manifest/app/load.ts @@ -10,11 +10,7 @@ export async function loadAppManifest( quiet = false ): Promise { const run = (): Promise => { - console.log("load: ", manifestPath); const manifest = fs.readFileSync(manifestPath, "utf-8"); - - console.log(manifest) - if (!manifest) { const noLoadMessage = intlMsg.lib_helpers_manifest_unableToLoad({ path: `${manifestPath}`, diff --git a/packages/cli/src/lib/parsers/query.ts b/packages/cli/src/lib/parsers/query.ts index fe79709b5a..a6210e63c5 100644 --- a/packages/cli/src/lib/parsers/query.ts +++ b/packages/cli/src/lib/parsers/query.ts @@ -14,7 +14,9 @@ export function parseRecipeScriptPathOption( ): string { const absPath = path.resolve(script); if (!fs.existsSync(absPath)) { - throw new Error(intlMsg.commands_query_error_noRecipeScriptFound({path: absPath})); + throw new Error( + intlMsg.commands_query_error_noRecipeScriptFound({ path: absPath }) + ); } return absPath; } diff --git a/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api-norun.gen.js b/packages/test-cases/cases/cli/api/codegen/001-sanity/web3api-norun.gen.js new file mode 100644 index 0000000000..e69de29bb2 From 267464341b04774341e1586e38f7e629e02d36fa Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Fri, 20 May 2022 12:53:44 +0530 Subject: [PATCH 17/23] fix(cli): ci issues --- packages/cli/src/__tests__/e2e/app.spec.ts | 3 + packages/cli/src/__tests__/e2e/build.spec.ts | 6 +- packages/cli/src/__tests__/e2e/help.spec.ts | 3 +- .../cli/src/__tests__/e2e/no-command.spec.ts | 3 +- packages/cli/src/commands/plugin.ts | 5 +- yarn.lock | 266 ++++++++++-------- 6 files changed, 159 insertions(+), 127 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/app.spec.ts b/packages/cli/src/__tests__/e2e/app.spec.ts index ded371d593..982d4b47bd 100644 --- a/packages/cli/src/__tests__/e2e/app.spec.ts +++ b/packages/cli/src/__tests__/e2e/app.spec.ts @@ -105,6 +105,9 @@ describe("e2e tests for app command", () => { }, ); + console.log(output); + console.log(error); + expect(error).toBe(""); expect(code).toEqual(0); expect(clearStyle(output)).toEqual(CODEGEN_SUCCESS); diff --git a/packages/cli/src/__tests__/e2e/build.spec.ts b/packages/cli/src/__tests__/e2e/build.spec.ts index 18c2469e0e..12fe66c847 100644 --- a/packages/cli/src/__tests__/e2e/build.spec.ts +++ b/packages/cli/src/__tests__/e2e/build.spec.ts @@ -54,10 +54,8 @@ describe("e2e tests for build command", () => { ); expect(code).toEqual(1); - expect(error).toBe(""); - expect(clearStyle(output)) - .toEqual(`--output-dir option missing argument -${HELP}`); + expect(error).toContain("error: option '-o, --output-dir ' argument missing"); + expect(output).toBe("") }); test("Adds uuid-v4 suffix to build-env image if no build manifest specified", async () => { diff --git a/packages/cli/src/__tests__/e2e/help.spec.ts b/packages/cli/src/__tests__/e2e/help.spec.ts index 39fca924d6..4915c79533 100644 --- a/packages/cli/src/__tests__/e2e/help.spec.ts +++ b/packages/cli/src/__tests__/e2e/help.spec.ts @@ -12,7 +12,8 @@ Commands: build|b [options] Builds a Web3API codegen|g [options] Auto-generate API Types create|c Create a new project with w3 CLI - plugin|p + deploy|d [options] Deploys/Publishes a Web3API + plugin|p Build/generate types for the plugin query|q [options] Query Web3APIs using recipe scripts test-env|t Manage a test environment for Web3API help [command] display help for command diff --git a/packages/cli/src/__tests__/e2e/no-command.spec.ts b/packages/cli/src/__tests__/e2e/no-command.spec.ts index ae7cd01674..8cd248794b 100644 --- a/packages/cli/src/__tests__/e2e/no-command.spec.ts +++ b/packages/cli/src/__tests__/e2e/no-command.spec.ts @@ -13,7 +13,8 @@ Commands: build|b [options] Builds a Web3API codegen|g [options] Auto-generate API Types create|c Create a new project with w3 CLI - plugin|p + deploy|d [options] Deploys/Publishes a Web3API + plugin|p Build/generate types for the plugin query|q [options] Query Web3APIs using recipe scripts test-env|t Manage a test environment for Web3API help [command] display help for command diff --git a/packages/cli/src/commands/plugin.ts b/packages/cli/src/commands/plugin.ts index f9351dfb18..afce0295f8 100644 --- a/packages/cli/src/commands/plugin.ts +++ b/packages/cli/src/commands/plugin.ts @@ -36,7 +36,10 @@ type PluginCommandOptions = { export const plugin: Command = { setup: (program: Program) => { - const pluginCommand = program.command("plugin").alias("p"); + const pluginCommand = program + .command("plugin") + .alias("p") + .description(intlMsg.commands_plugin_description()); pluginCommand .command("codegen") diff --git a/yarn.lock b/yarn.lock index 6e2ee7b85a..d2fff5719a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -180,32 +180,32 @@ source-map "^0.5.0" "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.4.5", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.12.tgz#b4eb2d7ebc3449b062381644c93050db545b70ee" - integrity sha512-44ODe6O1IVz9s2oJE3rZ4trNNKTX9O7KpQpfAP4t8QII/zwrVRHL7i2pxhqtcY7tqMLrrKfMlBKnm1QlrRFs5w== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" + integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.12" + "@babel/generator" "^7.18.0" "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.12" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helpers" "^7.18.0" + "@babel/parser" "^7.18.0" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.12" - "@babel/types" "^7.17.12" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.12", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.7.2", "@babel/generator@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.12.tgz#5970e6160e9be0428e02f4aba62d8551ec366cc8" - integrity sha512-V49KtZiiiLjH/CnIW6OjJdrenrGoyh6AmKQ3k2AZFKozC1h846Q4NYlZ5nqAigPDUXfGzC88+LOUuG8yKd2kCw== +"@babel/generator@^7.18.0", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.7.2", "@babel/generator@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" + integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== dependencies: - "@babel/types" "^7.17.12" + "@babel/types" "^7.18.0" "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" @@ -234,10 +234,10 @@ browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.8.3": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.12.tgz#d4f8393fc4838cbff6b7c199af5229aee16d07cf" - integrity sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew== +"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0", "@babel/helper-create-class-features-plugin@^7.8.3": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" + integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -312,10 +312,10 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.17.12", "@babel/helper-module-transforms@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.12.tgz#bec00139520cb3feb078ef7a4578562480efb77e" - integrity sha512-t5s2BeSWIghhFRPh9XMn6EIGmvn8Lmw5RVASJzkIx1mSemubQQBNIZiQD7WzaFmaHIrjAec4x8z9Yx8SjJ1/LA== +"@babel/helper-module-transforms@^7.18.0", "@babel/helper-module-transforms@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" + integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -323,8 +323,8 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.12" - "@babel/types" "^7.17.12" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" @@ -399,14 +399,14 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.9", "@babel/helpers@^7.4.4", "@babel/helpers@^7.9.0": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== +"@babel/helpers@^7.18.0", "@babel/helpers@^7.4.4", "@babel/helpers@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.0.tgz#aff37c3590de42102b54842446146d0205946370" + integrity sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" "@babel/highlight@^7.16.7", "@babel/highlight@^7.8.3": version "7.17.12" @@ -417,10 +417,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.12", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.12.tgz#36c2ed06944e3691ba82735fc4cf62d12d491a23" - integrity sha512-FLzHmN9V3AJIrWfOpvRlZCeVg/WLdicSnTMsLur6uDj9TT8ymUlG9XxURdW/XvuygK+2CW0poOJABdA4m/YKxA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112" + integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": version "7.17.12" @@ -463,12 +463,12 @@ "@babel/helper-create-class-features-plugin" "^7.17.12" "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-proposal-class-static-block@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.12.tgz#947f09dd496322c9543ec3b318bf52b4d9833334" - integrity sha512-8ILyDG6eL14F8iub97dVc8q35Md0PJYAnA5Kz9NACFOkt6ffCcr0FISyUPKHsvuAy36fkpIitxZ9bVYPFMGQHA== +"@babel/plugin-proposal-class-static-block@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" + integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -545,10 +545,10 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.17.12", "@babel/plugin-proposal-object-rest-spread@^7.4.4", "@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.12.tgz#f94a91715a7f2f8cfb3c06af820c776440bc0148" - integrity sha512-6l9cO3YXXRh4yPCPRA776ZyJ3RobG4ZKJZhp7NDRbKIOeV3dBPG8FXCF7ZtiO2RTCIOkQOph1xDDcc01iWVNjQ== +"@babel/plugin-proposal-object-rest-spread@^7.18.0", "@babel/plugin-proposal-object-rest-spread@^7.4.4", "@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" + integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== dependencies: "@babel/compat-data" "^7.17.10" "@babel/helper-compilation-targets" "^7.17.10" @@ -663,6 +663,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.17.12" +"@babel/plugin-syntax-import-assertions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" + integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -807,10 +814,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-destructuring@^7.17.12", "@babel/plugin-transform-destructuring@^7.4.4", "@babel/plugin-transform-destructuring@^7.8.3": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.12.tgz#0861d61e75e2401aca30f2570d46dfc85caacf35" - integrity sha512-P8pt0YiKtX5UMUL5Xzsc9Oyij+pJE6JuC+F1k0/brq/OOGs5jDa1If3OY0LRWGvJsJhI+8tsiecL3nJLc0WTlg== +"@babel/plugin-transform-destructuring@^7.18.0", "@babel/plugin-transform-destructuring@^7.4.4", "@babel/plugin-transform-destructuring@^7.8.3": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" + integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== dependencies: "@babel/helper-plugin-utils" "^7.17.12" @@ -846,9 +853,9 @@ "@babel/plugin-syntax-flow" "^7.8.3" "@babel/plugin-transform-for-of@^7.17.12", "@babel/plugin-transform-for-of@^7.4.4", "@babel/plugin-transform-for-of@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.17.12.tgz#5397c22554ec737a27918e7e7e0e7b679b05f5ec" - integrity sha512-76lTwYaCxw8ldT7tNmye4LLwSoKDbRCBzu6n/DcK/P3FOR29+38CIIaVIZfwol9By8W/QHORYEnYSLuvcQKrsg== + version "7.18.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" + integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== dependencies: "@babel/helper-plugin-utils" "^7.17.12" @@ -875,42 +882,42 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.17.12", "@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.17.12.tgz#08ec1f10f854c15bb3b44952e60f1fc126d7d481" - integrity sha512-p5rt9tB5Ndcc2Za7CeNxVf7YAjRcUMR6yi8o8tKjb9KhRkEvXwa+C0hj6DA5bVDkKRxB0NYhMUGbVKoFu4+zEA== +"@babel/plugin-transform-modules-amd@^7.18.0", "@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" + integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== dependencies: - "@babel/helper-module-transforms" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.17.12", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.12.tgz#37691c7404320d007288edd5a2d8600bcef61c34" - integrity sha512-tVPs6MImAJz+DiX8Y1xXEMdTk5Lwxu9jiPjlS+nv5M2A59R7+/d1+9A8C/sbuY0b3QjIxqClkj6KAplEtRvzaA== +"@babel/plugin-transform-modules-commonjs@^7.18.0", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz#3be575e19fbd273d42adbc84566b1fad3582b3db" + integrity sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw== dependencies: - "@babel/helper-module-transforms" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.17.12", "@babel/plugin-transform-modules-systemjs@^7.4.4", "@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.12.tgz#e631b151b99d25401cd9679476cc35e6e5bbc7d4" - integrity sha512-NVhDb0q00hqZcuLduUf/kMzbOQHiocmPbIxIvk23HLiEqaTKC/l4eRxeC7lO63M72BmACoiKOcb9AkOAJRerpw== +"@babel/plugin-transform-modules-systemjs@^7.18.0", "@babel/plugin-transform-modules-systemjs@^7.4.4", "@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz#50ecdb43de97c8483824402f7125edb94cddb09a" + integrity sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ== dependencies: "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.17.12", "@babel/plugin-transform-modules-umd@^7.2.0", "@babel/plugin-transform-modules-umd@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.17.12.tgz#b37be3ecf198c1fea10e6268461729ced05644e1" - integrity sha512-BnsPkrUHsjzZGpnrmJeDFkOMMljWFHPjDc9xDcz71/C+ybF3lfC3V4m3dwXPLZrE5b3bgd4V+3/Pj+3620d7IA== +"@babel/plugin-transform-modules-umd@^7.18.0", "@babel/plugin-transform-modules-umd@^7.2.0", "@babel/plugin-transform-modules-umd@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" + integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== dependencies: - "@babel/helper-module-transforms" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-named-capturing-groups-regex@^7.17.12", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.4", "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": @@ -1004,12 +1011,12 @@ "@babel/types" "^7.17.12" "@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" - integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz#ef82c8e310913f3522462c9ac967d395092f1954" + integrity sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-regenerator@7.4.4": version "7.4.4" @@ -1018,11 +1025,12 @@ dependencies: regenerator-transform "^0.13.4" -"@babel/plugin-transform-regenerator@^7.17.9", "@babel/plugin-transform-regenerator@^7.4.4", "@babel/plugin-transform-regenerator@^7.8.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== +"@babel/plugin-transform-regenerator@^7.18.0", "@babel/plugin-transform-regenerator@^7.4.4", "@babel/plugin-transform-regenerator@^7.8.7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" + integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== dependencies: + "@babel/helper-plugin-utils" "^7.17.12" regenerator-transform "^0.15.0" "@babel/plugin-transform-reserved-words@^7.17.12", "@babel/plugin-transform-reserved-words@^7.2.0", "@babel/plugin-transform-reserved-words@^7.8.3": @@ -1096,11 +1104,11 @@ "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-typescript@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.17.12.tgz#9654587131bc776ff713218d929fa9a2e98ca16d" - integrity sha512-ICbXZqg6hgenjmwciVI/UfqZtExBrZOrS8sLB5mTHGO/j08Io3MmooULBiijWk9JBknjM3CbbtTc/0ZsqLrjXQ== + version "7.18.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.1.tgz#5fd8b86130bad95c4a24377b41ab989a9ccad22d" + integrity sha512-F+RJmL479HJmC0KeqqwEGZMg1P7kWArLGbAKfEi9yPthJyMNjF+DjxFF/halfQvq1Q9GFM4TUbYDNV8xe4Ctqg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-typescript" "^7.17.12" @@ -1248,9 +1256,9 @@ semver "^5.5.0" "@babel/preset-env@^7.4.5": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.12.tgz#b81ae0bb762b683d68b07b6d2d4020ccbef8d67a" - integrity sha512-Kke30Rj3Lmcx97bVs71LO0s8M6FmJ7tUAQI9fNId62rf0cYG1UAWwdNO9/sE0/pLEahAw1MqMorymoD12bj5Fg== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.0.tgz#ec7e51f4c6e026816000b230ed7cf74a1530d91d" + integrity sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA== dependencies: "@babel/compat-data" "^7.17.10" "@babel/helper-compilation-targets" "^7.17.10" @@ -1260,14 +1268,14 @@ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" "@babel/plugin-proposal-async-generator-functions" "^7.17.12" "@babel/plugin-proposal-class-properties" "^7.17.12" - "@babel/plugin-proposal-class-static-block" "^7.17.12" + "@babel/plugin-proposal-class-static-block" "^7.18.0" "@babel/plugin-proposal-dynamic-import" "^7.16.7" "@babel/plugin-proposal-export-namespace-from" "^7.17.12" "@babel/plugin-proposal-json-strings" "^7.17.12" "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.17.12" + "@babel/plugin-proposal-object-rest-spread" "^7.18.0" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" "@babel/plugin-proposal-optional-chaining" "^7.17.12" "@babel/plugin-proposal-private-methods" "^7.17.12" @@ -1278,6 +1286,7 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.17.12" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1293,7 +1302,7 @@ "@babel/plugin-transform-block-scoping" "^7.17.12" "@babel/plugin-transform-classes" "^7.17.12" "@babel/plugin-transform-computed-properties" "^7.17.12" - "@babel/plugin-transform-destructuring" "^7.17.12" + "@babel/plugin-transform-destructuring" "^7.18.0" "@babel/plugin-transform-dotall-regex" "^7.16.7" "@babel/plugin-transform-duplicate-keys" "^7.17.12" "@babel/plugin-transform-exponentiation-operator" "^7.16.7" @@ -1301,16 +1310,16 @@ "@babel/plugin-transform-function-name" "^7.16.7" "@babel/plugin-transform-literals" "^7.17.12" "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.17.12" - "@babel/plugin-transform-modules-commonjs" "^7.17.12" - "@babel/plugin-transform-modules-systemjs" "^7.17.12" - "@babel/plugin-transform-modules-umd" "^7.17.12" + "@babel/plugin-transform-modules-amd" "^7.18.0" + "@babel/plugin-transform-modules-commonjs" "^7.18.0" + "@babel/plugin-transform-modules-systemjs" "^7.18.0" + "@babel/plugin-transform-modules-umd" "^7.18.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" "@babel/plugin-transform-new-target" "^7.17.12" "@babel/plugin-transform-object-super" "^7.16.7" "@babel/plugin-transform-parameters" "^7.17.12" "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.17.9" + "@babel/plugin-transform-regenerator" "^7.18.0" "@babel/plugin-transform-reserved-words" "^7.17.12" "@babel/plugin-transform-shorthand-properties" "^7.16.7" "@babel/plugin-transform-spread" "^7.17.12" @@ -1320,7 +1329,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.16.7" "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.17.12" + "@babel/types" "^7.18.0" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" @@ -1371,9 +1380,9 @@ "@babel/plugin-transform-typescript" "^7.9.0" "@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.12.1": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz#3d02d0161f0fbf3ada8e88159375af97690f4055" - integrity sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.0.tgz#eed03023c5226b1e2b2ba32b8b6af5cb0518a6c7" + integrity sha512-G5FaGZOWORq9zthDjIrjib5XlcddeqLbIiDO3YQsut6j7aGf76xn0umUC/pA6+nApk3hQJF4JzLzg5PCl6ewJg== dependencies: core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" @@ -1393,9 +1402,9 @@ regenerator-runtime "^0.13.4" "@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.0.tgz#6d77142a19cb6088f0af662af1ada37a604d34ae" + integrity sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg== dependencies: regenerator-runtime "^0.13.4" @@ -1408,26 +1417,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.12", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.12.tgz#011874d2abbca0ccf1adbe38f6f7a4ff1747599c" - integrity sha512-zULPs+TbCvOkIFd4FrG53xrpxvCBwLIgo6tO0tJorY7YV2IWFxUfS/lXDJbGgfyYt9ery/Gxj2niwttNnB0gIw== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" + integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.12" + "@babel/generator" "^7.18.0" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.12" - "@babel/types" "^7.17.12" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.12.tgz#1210690a516489c0200f355d87619157fbbd69a0" - integrity sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg== +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.0.tgz#ef523ea349722849cb4bf806e9342ede4d071553" + integrity sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -4250,9 +4259,9 @@ integrity sha512-wH6Tu9mbiOt0n5EvdoWy0VGQaJMHfLIxY/6wS0xLC7CV1taM6gESEzcYy0ZlWvxxiiljYvfDIvz4hHbUUDRlhw== "@types/node@*": - version "17.0.34" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.34.tgz#3b0b6a50ff797280b8d000c6281d229f9c538cef" - integrity sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA== + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" + integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== "@types/node@12.0.0": version "12.0.0" @@ -5223,6 +5232,17 @@ array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: es-abstract "^1.19.2" es-shim-unscopables "^1.0.0" +array.prototype.reduce@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -8786,7 +8806,7 @@ error@^7.0.0: dependencies: string-template "~0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0, es-abstract@^1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== @@ -8815,6 +8835,11 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19 string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -15739,13 +15764,14 @@ object.fromentries@^2.0.2: es-abstract "^1.19.1" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + version "2.1.4" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== dependencies: + array.prototype.reduce "^1.0.4" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.1" object.pick@^1.3.0: version "1.3.0" From c896de9971fde90c6d6475c449c6403d2172c27c Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 24 May 2022 12:06:32 +0530 Subject: [PATCH 18/23] refactor: remove leftover console.log and comments --- packages/cli/src/__tests__/e2e/app.spec.ts | 3 --- packages/cli/src/commands/app.ts | 2 -- packages/cli/src/commands/build.ts | 2 -- packages/cli/src/commands/codegen.ts | 2 -- packages/cli/src/commands/deploy.ts | 7 ++----- packages/cli/src/commands/query.ts | 2 -- 6 files changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/app.spec.ts b/packages/cli/src/__tests__/e2e/app.spec.ts index 982d4b47bd..ded371d593 100644 --- a/packages/cli/src/__tests__/e2e/app.spec.ts +++ b/packages/cli/src/__tests__/e2e/app.spec.ts @@ -105,9 +105,6 @@ describe("e2e tests for app command", () => { }, ); - console.log(output); - console.log(error); - expect(error).toBe(""); expect(code).toEqual(0); expect(clearStyle(output)).toEqual(CODEGEN_SUCCESS); diff --git a/packages/cli/src/commands/app.ts b/packages/cli/src/commands/app.ts index 366d2690a6..48b08f5feb 100644 --- a/packages/cli/src/commands/app.ts +++ b/packages/cli/src/commands/app.ts @@ -10,8 +10,6 @@ import { import { parseAppManifestFileOption, parseAppCodegenDirOption, - // defaultAppCodegenDirOption, - // defaultAppManifestFileOption, } from "../lib/parsers"; import { Web3ApiClient } from "@web3api/client-js"; diff --git a/packages/cli/src/commands/build.ts b/packages/cli/src/commands/build.ts index cee1d44fee..1bb254f04d 100644 --- a/packages/cli/src/commands/build.ts +++ b/packages/cli/src/commands/build.ts @@ -13,9 +13,7 @@ import { } from "../lib"; import { parseWasmManifestFileOption, - // defaultWasmManifestFileOption, parseBuildOutputDirOption, - // defaultBuildOutputDirOption, } from "../lib/parsers"; import { print } from "gluegun"; diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index 1d1c6c4018..eef5cae384 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -9,8 +9,6 @@ import { getTestEnvProviders, } from "../lib"; import { - // defaultCodegenDirOption, - // defaultWasmManifestFileOption, parseCodegenDirOption, parseCodegenScriptOption, parseWasmManifestFileOption, diff --git a/packages/cli/src/commands/deploy.ts b/packages/cli/src/commands/deploy.ts index 0594b65733..35b813c9d9 100644 --- a/packages/cli/src/commands/deploy.ts +++ b/packages/cli/src/commands/deploy.ts @@ -5,10 +5,7 @@ import { defaultWeb3ApiManifest, DeployPackage, } from "../lib"; -import { - // defaultWasmManifestFileOption, - parseWasmManifestFileOption, -} from "../lib/parsers"; +import { parseWasmManifestFileOption } from "../lib/parsers"; import { DeployerHandler } from "../lib/deploy/deployer"; import { Command, Program } from "./types"; @@ -34,7 +31,7 @@ export const deploy: Command = { .description(intlMsg.commands_deploy_description()) .option( `-m, --manifest-file <${pathStr}>`, - `${intlMsg.commands_plugin_options_m({ + `${intlMsg.commands_deploy_options_m({ default: defaultManifestStr, })}` ) diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index d155de4d4f..baf0b38f08 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -1,10 +1,8 @@ import { Command, Program } from "./types"; import { intlMsg } from "../lib"; import { - // defaultClientConfigOption, parseClientConfigOption, parseRecipeOutputFilePathOption, - // parseRecipeScriptPathOption, } from "../lib/parsers"; import { Web3ApiClient, Web3ApiClientConfig } from "@web3api/client-js"; From 907d3bdc813c44e4a1a8b65352865fb897f96cb1 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 24 May 2022 22:24:50 +0530 Subject: [PATCH 19/23] fix(cli): tests --- packages/cli/src/__tests__/e2e/deploy.spec.ts | 2 +- packages/cli/src/__tests__/e2e/plugin.spec.ts | 2 ++ packages/cli/src/__tests__/e2e/query.spec.ts | 15 ++++++++++----- packages/cli/src/commands/query.ts | 2 -- yarn.lock | 6 +++--- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/cli/src/__tests__/e2e/deploy.spec.ts b/packages/cli/src/__tests__/e2e/deploy.spec.ts index 4e5ef370a5..94508fdbc7 100644 --- a/packages/cli/src/__tests__/e2e/deploy.spec.ts +++ b/packages/cli/src/__tests__/e2e/deploy.spec.ts @@ -20,7 +20,7 @@ const HELP = `Usage: w3 deploy|d [options] Deploys/Publishes a Web3API Options: - -m, --manifest-file Path to the Web3API Plugin manifest file + -m, --manifest-file Path to the Web3API Deploy manifest file (default: web3api.yaml | web3api.yml) -v, --verbose Verbose output (default: false) -h, --help display help for command diff --git a/packages/cli/src/__tests__/e2e/plugin.spec.ts b/packages/cli/src/__tests__/e2e/plugin.spec.ts index 8c35416c45..dccce3fb34 100644 --- a/packages/cli/src/__tests__/e2e/plugin.spec.ts +++ b/packages/cli/src/__tests__/e2e/plugin.spec.ts @@ -8,6 +8,8 @@ import fs from "fs"; const HELP = `Usage: w3 plugin|p [options] [command] +Build/generate types for the plugin + Options: -h, --help display help for command diff --git a/packages/cli/src/__tests__/e2e/query.spec.ts b/packages/cli/src/__tests__/e2e/query.spec.ts index a932e7ecbf..44b9a31897 100644 --- a/packages/cli/src/__tests__/e2e/query.spec.ts +++ b/packages/cli/src/__tests__/e2e/query.spec.ts @@ -28,11 +28,11 @@ Arguments: recipe Path to recipe script Options: - -h, --help Show usage information - -c, --client-config Add custom configuration to the Web3ApiClient - -o, --output-file Output file path for the query result - -q, --quiet Suppress output - + -c, --client-config Add custom configuration to the + Web3ApiClient + -o, --output-file Output file path for the query result + -q, --quiet Suppress output + -h, --help display help for command `; describe("sanity tests for query command", () => { @@ -115,6 +115,8 @@ describe("e2e tests for query command", () => { }); }); + test("hello", async () => {}); + test("Should successfully return response: using json recipes", async () => { const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ args: ["query", "./recipes/e2e.json"], @@ -122,6 +124,9 @@ describe("e2e tests for query command", () => { cli: w3Cli, }); + console.log(output) + console.log(queryErr) + expect(code).toEqual(0); expect(queryErr).toBe(""); diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index baf0b38f08..8933069433 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -14,7 +14,6 @@ import fs from "fs"; type QueryCommandOptions = { clientConfig: Partial; outputFile?: string; - testEns?: boolean; quiet?: boolean; }; @@ -33,7 +32,6 @@ export const query: Command = { `-o, --output-file <${intlMsg.commands_query_options_outputFilePath()}>`, `${intlMsg.commands_query_options_outputFile()}` ) - .option(`-t, --test-ens`, `${intlMsg.commands_build_options_t()}`) .option(`-q, --quiet`, `${intlMsg.commands_query_options_quiet()}`) .action(async (recipe: string, options) => { await run(recipe, { diff --git a/yarn.lock b/yarn.lock index 4c365e0a71..bd356c316e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -179,7 +179,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.4.5", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.4.5", "@babel/core@^7.7.5": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== @@ -200,7 +200,7 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.0", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.7.2", "@babel/generator@^7.9.0": +"@babel/generator@^7.18.0", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.9.0": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== @@ -1417,7 +1417,7 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.9.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== From 8dab62f0598fd59a8eab4a6138e565a1b167a363 Mon Sep 17 00:00:00 2001 From: namesty Date: Thu, 26 May 2022 03:26:44 +0200 Subject: [PATCH 20/23] (fix): async client configuration awaiting --- packages/cli/src/commands/query.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 8933069433..8f7831a9ff 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -36,7 +36,7 @@ export const query: Command = { .action(async (recipe: string, options) => { await run(recipe, { ...options, - clientConfig: parseClientConfigOption( + clientConfig: await parseClientConfigOption( options.clientConfig, undefined ), From 919df60ffebdc74d4b0ea4c3a44d2c2377085411 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Thu, 26 May 2022 11:47:40 +0530 Subject: [PATCH 21/23] fix(cli): json and yaml query output --- packages/cli/src/__tests__/e2e/query.spec.ts | 5 ----- packages/cli/src/commands/query.ts | 2 ++ packages/test-cases/cases/cli/api/query/recipes/output.json | 1 - 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 packages/test-cases/cases/cli/api/query/recipes/output.json diff --git a/packages/cli/src/__tests__/e2e/query.spec.ts b/packages/cli/src/__tests__/e2e/query.spec.ts index 44b9a31897..d7efec3074 100644 --- a/packages/cli/src/__tests__/e2e/query.spec.ts +++ b/packages/cli/src/__tests__/e2e/query.spec.ts @@ -115,8 +115,6 @@ describe("e2e tests for query command", () => { }); }); - test("hello", async () => {}); - test("Should successfully return response: using json recipes", async () => { const { exitCode: code, stdout: output, stderr: queryErr } = await runCLI({ args: ["query", "./recipes/e2e.json"], @@ -124,9 +122,6 @@ describe("e2e tests for query command", () => { cli: w3Cli, }); - console.log(output) - console.log(queryErr) - expect(code).toEqual(0); expect(queryErr).toBe(""); diff --git a/packages/cli/src/commands/query.ts b/packages/cli/src/commands/query.ts index 8f7831a9ff..dabd8175e3 100644 --- a/packages/cli/src/commands/query.ts +++ b/packages/cli/src/commands/query.ts @@ -67,12 +67,14 @@ async function run(recipePath: string, options: QueryCommandOptions) { for (const task of recipe) { if (task.api) { uri = task.api; + recipeOutput.push({ api: task.api }); } if (task.constants) { constants = getParser(task.constants)( fs.readFileSync(path.join(dir, task.constants)).toString() ); + recipeOutput.push({ constants: task.constants }); } if (task.query) { diff --git a/packages/test-cases/cases/cli/api/query/recipes/output.json b/packages/test-cases/cases/cli/api/query/recipes/output.json deleted file mode 100644 index 5be6a59947..0000000000 --- a/packages/test-cases/cases/cli/api/query/recipes/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"api":"ens/testnet/simplestorage.eth"},{"constants":"./constants.json"},{"query":"./set.graphql","variables":{"address":"$SimpleStorageAddr","value":569,"network":"testnet"},"output":{"data":{},"errors":[{}]}}] \ No newline at end of file From 96fdd99b6c9dc4b070bf1ece5df16ec35f0a4cb4 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Thu, 26 May 2022 12:42:46 -0500 Subject: [PATCH 22/23] remove yarn.lock --- packages/cli/yarn.lock | 6928 ---------------------------------------- 1 file changed, 6928 deletions(-) delete mode 100644 packages/cli/yarn.lock diff --git a/packages/cli/yarn.lock b/packages/cli/yarn.lock deleted file mode 100644 index 0b8f2763ca..0000000000 --- a/packages/cli/yarn.lock +++ /dev/null @@ -1,6928 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.7.tgz#f7c28228c83cdf2dbd1b9baa06eaf9df07f0c2f9" - integrity sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.7" - "@babel/parser" "^7.17.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" - integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.7.tgz#6fc0a24280fd00026e85424bbfed4650e76d7127" - integrity sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.7.tgz#fc19b645a5456c8d6fdb6cecd3c66c0173902800" - integrity sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@dorgjelli-test/ipfs-http-client-lite@0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@dorgjelli-test/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.1.tgz#5514b4400e0c91ea64e0b5faf426ba808809ddfe" - integrity sha512-N96ilOlJnjnprOOIrwKjEA7lu67mbXyGmJO/vOBXQvY9AQw9XrPdIEn0x30bHwQ6pWSwN4RhIgJUy1/A7u/hEg== - dependencies: - abort-controller "^3.0.0" - async-iterator-to-pull-stream "^1.3.0" - buffer "^5.2.1" - cids "^0.7.1" - explain-error "^1.0.4" - form-data "^2.4.0" - iterable-ndjson "^1.1.0" - node-fetch "^2.6.0" - pull-stream-to-async-iterator "^1.0.2" - querystring "^0.2.0" - -"@dorgjelli/graphql-schema-cycles@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@dorgjelli/graphql-schema-cycles/-/graphql-schema-cycles-1.1.4.tgz#31f230c61f624f7c2ceca7e18fad8b2cb07d392f" - integrity sha512-U5ARitMQWKjOAvwn1+0Z52R9sbNe1wpbgAbj2hOfRFb/vupfPlRwZLbuUZAlotMpkoxbTbk+GRmoiNzGcJfyHw== - dependencies: - graphql "15.5.0" - graphql-json-transform "^1.1.0-alpha.0" - -"@dsherret/to-absolute-glob@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1f6475dc8bd974cea07a2daf3864b317b1dd332c" - integrity sha1-H2R13IvZdM6gei2vOGSzF7HdMyw= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" - integrity sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg== - dependencies: - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" - integrity sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/web" "^5.6.0" - -"@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" - integrity sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ== - dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - -"@ethersproject/address@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.7.tgz#ee7fd7d3b3a400dec6035c7b3f0b7e4652207308" - integrity sha512-+63DiYG+2og6rFNvQmLlLw8i5LtyT65n+jtHd06Ic81rLHc+JUKRpeZFhBa+gqh9f+P8V0xtKR5NI/EHXOfgSw== - dependencies: - "@ethersproject/bignumber" "^5.0.10" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp" "^5.0.3" - -"@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" - integrity sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/rlp" "^5.6.0" - -"@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" - integrity sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw== - dependencies: - "@ethersproject/bytes" "^5.6.0" - -"@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.0.tgz#9ea7209bf0a1c3ddc2a90f180c3a7f0d7d2e8a69" - integrity sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - -"@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" - integrity sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.0.tgz#81652f2a0e04533575befadce555213c11d8aa20" - integrity sha512-3hJPlYemb9V4VLfJF5BfN0+55vltPZSHU3QKUyP9M3Y2TcajbiRrz65UG+xVHOzBereB1b9mn7r12o177xgN7w== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" - integrity sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - -"@ethersproject/contracts@^5.0.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.0.tgz#60f2cfc7addd99a865c6c8cfbbcec76297386067" - integrity sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw== - dependencies: - "@ethersproject/abi" "^5.6.0" - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - -"@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" - integrity sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA== - dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.0.tgz#9dcbe8d629bbbcf144f2cae476337fe92d320998" - integrity sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw== - dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/basex" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/signing-key" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/wordlists" "^5.6.0" - -"@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz#4c2fc27f17e36c583e7a252fb938bc46f98891e5" - integrity sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ== - dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hdnode" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" - integrity sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w== - dependencies: - "@ethersproject/bytes" "^5.6.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" - integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== - -"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.0.tgz#486d03fff29b4b6b5414d47a232ded09fe10de5e" - integrity sha512-DaVzgyThzHgSDLuURhvkp4oviGoGe9iTZW4jMEORHDRCgSZ9K9THGFKqL+qGXqPAYLEgZTf5z2w56mRrPR1MjQ== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz#04fcc2d7c6bff88393f5b4237d906a192426685a" - integrity sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - -"@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" - integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/providers@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" - integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.3" - "@ethersproject/abstract-signer" "^5.0.3" - "@ethersproject/address" "^5.0.3" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.6" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.3" - "@ethersproject/hash" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.3" - "@ethersproject/transactions" "^5.0.3" - "@ethersproject/web" "^5.0.4" - bech32 "1.1.4" - ws "7.2.3" - -"@ethersproject/providers@^5.0.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.0.tgz#08ec8e2666771e3a347e66c8f664a2af97366534" - integrity sha512-6+5PKXTWAttJWFWF8+xCDTCa2/dtq9BNrdKQHGl0IyIOwj99vM6OeThmIRcsIAzIOb8m0XS6w+1KFZwrf3j9nw== - dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/basex" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/rlp" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/web" "^5.6.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6" - integrity sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" - integrity sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.0.tgz#364c4c11cc753bda36f31f001628706ebadb64d9" - integrity sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" - integrity sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@^5.0.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.0.tgz#64657362a596bf7f5630bdc921c07dd78df06dc3" - integrity sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" - integrity sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" - integrity sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg== - dependencies: - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/rlp" "^5.6.0" - "@ethersproject/signing-key" "^5.6.0" - -"@ethersproject/units@^5.0.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.0.tgz#e5cbb1906988f5740254a21b9ded6bd51e826d9c" - integrity sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/wallet@^5.0.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.0.tgz#33d11a806d783864208f348709a5a3badac8e22a" - integrity sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg== - dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/hdnode" "^5.6.0" - "@ethersproject/json-wallets" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/signing-key" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/wordlists" "^5.6.0" - -"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" - integrity sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg== - dependencies: - "@ethersproject/base64" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.0.tgz#79e62c5276e091d8575f6930ba01a29218ded032" - integrity sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@formatjs/ecma402-abstract@1.6.2": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.2.tgz#9d064a2cf790769aa6721e074fb5d5c357084bb9" - integrity sha512-aLBODrSRhHaL/0WdQ0T2UsGqRbdtRRHqqrs4zwNQoRsGBEtEAvlj/rgr6Uea4PSymVJrbZBoAyECM2Z3Pq4i0g== - dependencies: - tslib "^2.1.0" - -"@formatjs/intl-datetimeformat@3.2.12": - version "3.2.12" - resolved "https://registry.yarnpkg.com/@formatjs/intl-datetimeformat/-/intl-datetimeformat-3.2.12.tgz#c9b2e85f0267ee13ea615a8991995da3075e3b13" - integrity sha512-qvY5+dl3vlgH0iWRXwl8CG9UkSVB5uP2+HH//fyZZ01G4Ww5rxMJmia1SbUqatpoe/dX+Z+aLejCqUUyugyL2g== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - tslib "^2.1.0" - -"@formatjs/intl-displaynames@4.0.10": - version "4.0.10" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-4.0.10.tgz#5bbd1bbcd64a036b4be27798b650c864dcf4466a" - integrity sha512-KmYJQHynGnnMeqIWVXhbzCMcEC8lg1TfGVdcO9May6paDT+dksZoOBQc741t7iXi/YVO/wXEZdmXhUNX7ODZug== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - tslib "^2.1.0" - -"@formatjs/intl-listformat@5.0.10": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-5.0.10.tgz#9f8c4ad5e8a925240e151ba794c41fba01f742cc" - integrity sha512-FLtrtBPfBoeteRlYcHvThYbSW2YdJTllR0xEnk6cr/6FRArbfPRYMzDpFYlESzb5g8bpQMKZy+kFQ6V2Z+5KaA== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - tslib "^2.1.0" - -"@formatjs/intl-relativetimeformat@8.1.2": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-8.1.2.tgz#119f3dce97458991f86bf34a736880e4a7bc1697" - integrity sha512-LZUxbc9GHVGmDc4sqGAXugoxhvZV7EG2lG2c0aKERup2ixvmDMbbEN3iEEr5aKkP7YyGxXxgqDn2dwg7QCPR6Q== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - tslib "^2.1.0" - -"@formatjs/intl@1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-1.8.2.tgz#6090e6c1826a92e70668dfe08b4ba30127ea3a85" - integrity sha512-9xHoNKPv4qQIQ5AVfpQbIPZanz50i7oMtZWrd6Fz7Q2GM/5uhBr9mrCrY1tz/+diP7uguKmhj1IweLYaxY3DTQ== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - "@formatjs/intl-datetimeformat" "3.2.12" - "@formatjs/intl-displaynames" "4.0.10" - "@formatjs/intl-listformat" "5.0.10" - "@formatjs/intl-relativetimeformat" "8.1.2" - fast-memoize "^2.5.2" - intl-messageformat "9.5.2" - intl-messageformat-parser "6.4.2" - tslib "^2.1.0" - -"@formatjs/ts-transformer@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.2.0.tgz#fdd3617347f023cbe3dad91713240d39bb139eca" - integrity sha512-T1mf72VaqPcARMSbAxRogXTd58gBF3R87oApCvMtXLJR2AIuSX7fnia/2A//f4dmq4qDetcvEmetlvwz0b5dbw== - dependencies: - intl-messageformat-parser "6.4.2" - tslib "^2.1.0" - typescript "^4.0" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@msgpack/msgpack@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.3.0.tgz#a9043b920837b2dd63482e7bf6b8345813e9816b" - integrity sha512-xxRejzNpiVQ2lzxMG/yo2ocfZSk+cKo2THq54AimaubMucg66DpQm9Yj7ESMr/l2EqDkmF2Dx4r0F/cbsitAaw== - -"@multiformats/base-x@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" - integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@opentelemetry/api-metrics@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-metrics/-/api-metrics-0.20.0.tgz#5c332cadfacd1fa966318292ba8dbb542f5ead57" - integrity sha512-S/OeOuk5W8nlv2dp4JQmIzZvafpOKhEb4j9gWdWQaM0+U+Cv+yQlboeTQHFcpj5obwJ7AzTHrwnL6ApV8dtmuw== - -"@opentelemetry/api@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-0.20.0.tgz#d4e26d30dc0c5da697d1ff51434ad8f0cf30e565" - integrity sha512-n06MtDYEc2H07S/NTvGMlxF2Ijp0YbNrI/rBgLcxpEh3hxOkPZA12gxlUoZkBHWCZYau2j3b/uL+QFpiQKOjSw== - -"@opentelemetry/context-async-hooks@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-0.20.0.tgz#44c457eb2359ff3086bb8fc5d306b2efd91921d9" - integrity sha512-4cuTIPpufWRDdShtvT0c30/jHfO9eXzUh6tU087J8aO8J/hckyCIlN03eB7pfqPwQzLnWONGdHOpGjLSY7q4tg== - -"@opentelemetry/context-zone-peer-dep@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-0.20.0.tgz#d9d9da21466471609f49dd4ac6c231a21473165b" - integrity sha512-IuR21APoAwPMkEwYtRQW1bEqFZttmwflloNr8eWXlb19kH6E8oTvDkH0dTTQWfEkj7T/R93ePPlDMh98L05AfQ== - -"@opentelemetry/context-zone@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone/-/context-zone-0.20.0.tgz#88b59ed212f07f0286e99f4dda218d20f211fcdd" - integrity sha512-jefasByZ4qlx4QT8jeQoenemlxFMNXqP/4dQaJEQi8OyzaFFdOvRLHc3dJLMV2Icq0z7Vdir44icI+sbXnHp0A== - dependencies: - "@opentelemetry/context-zone-peer-dep" "0.20.0" - zone.js "^0.11.0" - -"@opentelemetry/core@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-0.20.0.tgz#2fc9619fa225c7ea7a6169ac578f89c9894b5900" - integrity sha512-09zQqB4vp2jcyBnglA/TFklDQoVgWrFKtr9pDm0q3Oa1bD2Hwpq+JapBAw18YdMQsLNQM/qsXhFlS3gFDVEy4A== - dependencies: - "@opentelemetry/semantic-conventions" "0.20.0" - semver "^7.1.3" - -"@opentelemetry/exporter-collector@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-collector/-/exporter-collector-0.20.0.tgz#e8fe1d3411f115d3b113115c2a78e16b3dacacd1" - integrity sha512-ka4FHPqXYZpTRx2KYTUpBB9gqzwtzuVBvxew5/0TpR8W3yP2gUErWPsUBrch2tRBQ7jY2kJN5sfkJPVt/j1X9w== - dependencies: - "@opentelemetry/api-metrics" "0.20.0" - "@opentelemetry/core" "0.20.0" - "@opentelemetry/metrics" "0.20.0" - "@opentelemetry/resources" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - -"@opentelemetry/exporter-jaeger@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-0.20.0.tgz#7d7da470a68ce3bd10038444609e4efdb74dc4cf" - integrity sha512-tzxuta6Z5YWHFDavIoXYB3cr7/y6WBieQiXnXfjuh9JEagUPE3en+0Qdc4Iu65E38eFNI8G3HWABoavWfRuvRQ== - dependencies: - "@opentelemetry/core" "0.20.0" - "@opentelemetry/semantic-conventions" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - jaeger-client "^3.15.0" - -"@opentelemetry/exporter-zipkin@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-0.20.0.tgz#636e9f02d4c561da2b3b58565a08ce840df9a2e4" - integrity sha512-SoCcx749YkYAwnep6KZeR1zyQeg55uxDL/ZX5zP1ZMblmVcYIO8X7aNFBIHM9IlvbArNnYHMECBu7idCJPA/WQ== - dependencies: - "@opentelemetry/core" "0.20.0" - "@opentelemetry/resources" "0.20.0" - "@opentelemetry/semantic-conventions" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - -"@opentelemetry/metrics@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/metrics/-/metrics-0.20.0.tgz#9f8b2652929a830513dc6949e2471f325c1e8dbd" - integrity sha512-1jqtRvI+AdRIG+Up8njOgooOxa570uoWTKgokanllcCRp2gOOnkgLQ8YQhbArX0F4Xi2FHYe7o5vDO3J0Aj5kA== - dependencies: - "@opentelemetry/api-metrics" "0.20.0" - "@opentelemetry/core" "0.20.0" - "@opentelemetry/resources" "0.20.0" - lodash.merge "^4.6.2" - -"@opentelemetry/node@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/node/-/node-0.20.0.tgz#7d4594deb87f0c0133d4b97b78a5678a6f8554cf" - integrity sha512-MVwnH/AoHQTz1jOhJTYXoAoQD4CA/3L7QQkiiA93f6QGaWKIHjI/+3fUtA/GCfPR9Kf0sItQ/aag8KtCJClPCw== - dependencies: - "@opentelemetry/context-async-hooks" "0.20.0" - "@opentelemetry/core" "0.20.0" - "@opentelemetry/propagator-b3" "0.20.0" - "@opentelemetry/propagator-jaeger" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - semver "^7.1.3" - -"@opentelemetry/propagator-b3@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-0.20.0.tgz#78944a0527675c856b4f369dbfdd48d5272a434e" - integrity sha512-TGI2D45oUVlbXVEWDedqxwO0WUtzchN/tuYghEHjRTNcVLLKT2ci9JwzHormC+ls98SYPDfvuzpB0+ParoexPQ== - dependencies: - "@opentelemetry/core" "0.20.0" - -"@opentelemetry/propagator-jaeger@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-0.20.0.tgz#35fc5e0bfde1bef6afc0307f88a4b22135bc5c14" - integrity sha512-6kdnd1ePADx4XDaFw4Ea47fdIZohhJbd30Fc4yvl0DO+RR5WEAiAho0IsoTj6L/qvOb/+LAfvjvdk2UOXgb/3Q== - dependencies: - "@opentelemetry/core" "0.20.0" - -"@opentelemetry/resources@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-0.20.0.tgz#038d985c610600cde146ee1e95b6a124f3ad4754" - integrity sha512-nnd3vIM+A9ih6kOVBc2CF5NkTYmdNci5aQ+A5lQjf3HqjEptcGubpg1J1Q84LSFVoITvuH2O6+GhPBrdxYBt8g== - dependencies: - "@opentelemetry/core" "0.20.0" - "@opentelemetry/semantic-conventions" "0.20.0" - -"@opentelemetry/semantic-conventions@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-0.20.0.tgz#adc7e391bba6db9bbaba04ae263c3e92b1703d44" - integrity sha512-x40C3vQMttFlnNEfhFwO49jHrY6AoWnntL35TCem3LINr/aw1W0hGhdKY/zweC64CBJEyiHumaae480rqF8eOA== - -"@opentelemetry/tracing@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/tracing/-/tracing-0.20.0.tgz#ff0224568925158244926661b339c0ac63a729ba" - integrity sha512-8ZIH0IBxIucgza0BFNiCCLByUsvu45Dm5k292RlO/E8Z1q/J7otJmh9r/EkaFb0ZSyjNdawmJ1CXnlU7+IQN1w== - dependencies: - "@opentelemetry/core" "0.20.0" - "@opentelemetry/resources" "0.20.0" - "@opentelemetry/semantic-conventions" "0.20.0" - lodash.merge "^4.6.2" - -"@opentelemetry/web@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/web/-/web-0.20.0.tgz#e0e090f0dcd35ebaa068c2e98f1b69d1a4aacfce" - integrity sha512-Ysja/YtlM/9hYKp8NUk63rSXQWT8N4uLWCyE/diW+iJDvUHY6DrNkSYKFYk5oRc50McYFq2Yqkmm/y1hRDCwHg== - dependencies: - "@opentelemetry/core" "0.20.0" - "@opentelemetry/semantic-conventions" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@ts-morph/common@~0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.8.1.tgz#7be0a0048eb906cb3ddf6506bef06c3cd1a1e3ba" - integrity sha512-3TC91LfCKCNCW7zYpegoMnMa9VigXtZHQererUM9pCvZKN3ust3ioLA0kfX+UHSzIGln+UYYiRzfOsv0QoiUng== - dependencies: - "@dsherret/to-absolute-glob" "^2.0.2" - fast-glob "^3.2.5" - is-negated-glob "^1.0.0" - mkdirp "^1.0.4" - multimatch "^5.0.0" - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/copyfiles@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/copyfiles/-/copyfiles-2.4.0.tgz#877ef9aa9def7df889fb1ca900206c79a873d113" - integrity sha512-ujm66wtJzW0ok5bIfwSZdvI4C4E6rbAvG58zow71wLjPPj65rIMu4Uy5LOx5H4eRvaagGUrrKTxqfLiDSsHEGQ== - -"@types/emoji-regex@^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@types/emoji-regex/-/emoji-regex-8.0.0.tgz#df215c9ff818e071087fb8e7e6e74c4cb42a1303" - integrity sha512-iacbaYN9IWWrGWTwlYLVOeUtN/e4cjN9Uh6v7Yo1Qa/vJzeSQeh10L/erBBSl53BTmbnQ07vsWp8mmNHGI4WbQ== - -"@types/eslint@^7.2.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/fs-extra@9.0.12": - version "9.0.12" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" - integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== - dependencies: - "@types/node" "*" - -"@types/glob@*": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@26.0.8": - version "26.0.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.8.tgz#f5c5559cf25911ce227f7ce30f1f160f24966369" - integrity sha512-eo3VX9jGASSuv680D4VQ89UmuLZneNxv2MCZjfwlInav05zXVJTzfc//lavdV0GPwSxsXJTy2jALscB7Acqg0g== - dependencies: - jest-diff "^25.2.1" - pretty-format "^25.2.1" - -"@types/json-schema@*": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/minimatch@*", "@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/node@*": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== - -"@types/node@12.12.26": - version "12.12.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.26.tgz#213e153babac0ed169d44a6d919501e68f59dea9" - integrity sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/prettier@^2.0.0": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" - integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== - -"@types/rimraf@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.0.tgz#b9d03f090ece263671898d57bb7bb007023ac19f" - integrity sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ== - dependencies: - "@types/glob" "*" - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - -"@typescript-eslint/typescript-estree@^3.6.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - -"@web3api/asyncify-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/asyncify-js/-/asyncify-js-0.0.1-prealpha.67.tgz#c0ded75007d50ef2405280589ccec2f7f9cc0428" - integrity sha512-zkQ+D0FEBjHXjsCooTQGoddteN4YrTVgg4snwZHkLaAYvsZR9te5uaMQnvofdBVLObVLQcUF2M1cZ2u5AlC4Yw== - -"@web3api/client-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/client-js/-/client-js-0.0.1-prealpha.67.tgz#72d3dc454ee329b5af9ea131d7cd821b499ebafc" - integrity sha512-GVbD3t38M/br2JYkoRuPZRGksEdSoUgtFU74u59SN7kI3Z3wI96lB0F5Pr0Cp6CX8edKKX3waI7SJ72HBc9H5A== - dependencies: - "@msgpack/msgpack" "2.3.0" - "@web3api/asyncify-js" "0.0.1-prealpha.67" - "@web3api/core-js" "0.0.1-prealpha.67" - "@web3api/ens-plugin-js" "0.0.1-prealpha.67" - "@web3api/ethereum-plugin-js" "0.0.1-prealpha.67" - "@web3api/fs-plugin-js" "0.0.1-prealpha.67" - "@web3api/graph-node-plugin-js" "0.0.1-prealpha.67" - "@web3api/http-plugin-js" "0.0.1-prealpha.67" - "@web3api/ipfs-plugin-js" "0.0.1-prealpha.67" - "@web3api/logger-plugin-js" "0.0.1-prealpha.67" - "@web3api/schema-parse" "0.0.1-prealpha.67" - "@web3api/sha3-plugin-js" "0.0.1-prealpha.67" - "@web3api/tracing-js" "0.0.1-prealpha.67" - "@web3api/uts46-plugin-js" "0.0.1-prealpha.67" - graphql "15.5.0" - js-yaml "3.14.0" - uuid "8.3.2" - -"@web3api/client-test-env@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/client-test-env/-/client-test-env-0.0.1-prealpha.67.tgz#b569dc4515ba0df4d13e029533dd169b203655f2" - integrity sha512-GoUaZ71QQ3IXRXruF9KpUBfsPmcdvbVxyOCTOa9KUpr9yt0Y2f8Ftqc9QHUA/E/cKbj7eRSF1fB5Mk0Okdb1KQ== - dependencies: - axios "0.21.2" - dotenv "10.0.0" - -"@web3api/core-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/core-js/-/core-js-0.0.1-prealpha.67.tgz#8f1a3fc7b0b5d66512a53b00c41790a3c9d29fdd" - integrity sha512-UZxsrSXh7d6vVj6WQ1E6ReCBiGBAquZOMnO2INgHJqKPZ6+yo4xLj9EJdCoXEgqKUcNxAdlJ0e4tWGzfcvjxig== - dependencies: - "@web3api/manifest-schemas" "0.0.1-prealpha.67" - "@web3api/tracing-js" "0.0.1-prealpha.67" - graphql "15.5.0" - graphql-tag "2.10.4" - js-yaml "3.14.0" - jsonschema "1.4.0" - semver "7.3.5" - -"@web3api/ens-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/ens-plugin-js/-/ens-plugin-js-0.0.1-prealpha.67.tgz#6f5088b897d0dc63b9faade7d7d67febd7b0d2b1" - integrity sha512-5gmOSWy/dnZ33axHsd36YVaEDVH4Yv2LCsHzjpNUuO8jYoGaH5wKLAJNZjE700DR1QRcmUw9E6ji98e8NvFHVA== - dependencies: - "@ethersproject/address" "5.0.7" - "@web3api/core-js" "0.0.1-prealpha.67" - ethers "5.0.7" - -"@web3api/ethereum-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/ethereum-plugin-js/-/ethereum-plugin-js-0.0.1-prealpha.67.tgz#cecb49b86e0d5c16df81fe31416ce4b27ae70162" - integrity sha512-1Ix25HKEkl26uWBvb4gUhJ0U9MBMM3Byk6VQzsLB4N4o/bsXERibYLUeRWMai58BDys1iKToQKdbPWFg6SuPlg== - dependencies: - "@ethersproject/address" "5.0.7" - "@ethersproject/providers" "5.0.7" - "@web3api/core-js" "0.0.1-prealpha.67" - ethers "5.0.7" - -"@web3api/fs-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/fs-plugin-js/-/fs-plugin-js-0.0.1-prealpha.67.tgz#b0b45d603d5fb3317619ab848191a1d9882236c1" - integrity sha512-0mcprvY5dc9Jzeu5Uu799fzgzFIOrWTzAtKeZWKYLumcxE/Pra7tUV+oHy81aOZC15XxXnhgPnmkZB++fkK1yQ== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - -"@web3api/graph-node-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/graph-node-plugin-js/-/graph-node-plugin-js-0.0.1-prealpha.67.tgz#8bd2a97ee56df90cd73a60bfbba1b5d9fa5851af" - integrity sha512-ro6V1qCJGuhAnkDZqnKwa6t6aY0SFt7/gKPv2jLCTGjL0e7QA9SAueOWL+zemCE/KzXUzhcHwxGxaI9XFNVsoQ== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - "@web3api/http-plugin-js" "0.0.1-prealpha.67" - apollo-link "1.2.14" - apollo-link-http "1.5.17" - cross-fetch "3.0.5" - graphql-tag "2.10.4" - -"@web3api/http-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/http-plugin-js/-/http-plugin-js-0.0.1-prealpha.67.tgz#7c0f2bb56e4e9c2fe5acf850cf2505fcd92f1495" - integrity sha512-JUxJp77aHu7iSUBpjMdoZXG7rJp+RbVNLjzQ1CbfaPrT6Bxqf/+iulWVkucp5K7WJvoihaLtaDq3N8/vKMHXZA== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - axios "0.21.4" - -"@web3api/ipfs-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/ipfs-plugin-js/-/ipfs-plugin-js-0.0.1-prealpha.67.tgz#b29e60bb56816ebe324adc3a6a54f06b31e04361" - integrity sha512-46tKeItk6zC74wU+0W/8IvesqXT4DP029YmZT3VdFfy7qdzgIjrx5BOnFr5mzgDWIpvcenixif8jnzghnS2naA== - dependencies: - "@dorgjelli-test/ipfs-http-client-lite" "0.3.1" - "@web3api/core-js" "0.0.1-prealpha.67" - abort-controller "3.0.0" - cids "^1.1.4" - is-ipfs "1.0.3" - -"@web3api/logger-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/logger-plugin-js/-/logger-plugin-js-0.0.1-prealpha.67.tgz#b4fdfe3afc862be9661ccffea7ac2403d554f6d2" - integrity sha512-P7mhq7NWc1jpz4J5R1fPIurJv2sqScX9zp9LT3y7HsVRBniTwTV2BG+8FHw2RJYkIHLP7EO7J+07IFPxHRtA+w== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - -"@web3api/manifest-schemas@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/manifest-schemas/-/manifest-schemas-0.0.1-prealpha.67.tgz#4c6e841baef381ef22a12df3b9532d2e8208c722" - integrity sha512-94wTK6TT/PxbTMuElcc8sYz2p7iRKrwINUC1tZML97lFCQCnTwmpny87LrQQHPMd+N4CkFced8ErxwBM0xTOyQ== - -"@web3api/os-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/os-js/-/os-js-0.0.1-prealpha.67.tgz#ce61734e5f8aa9b91f50ef620b0bb8c2bd041c52" - integrity sha512-KCxcm6rWlyPOUNHRFiHTetfFt97YIiLYk9eD2bbwolhkxNmfEPoQ45Fi3g9FnKWhZzAc7iAvfBaFRrNofXT8aQ== - -"@web3api/schema-bind@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/schema-bind/-/schema-bind-0.0.1-prealpha.67.tgz#8bd0b14e58c42ea61c92384f5b93f9fdc610c282" - integrity sha512-Gw0NzXRaoKWUltVTiNi9SWifxoigKpASSBgAJOu5JQSAZWLKjRKs5Rks8BkX1jVf/uKeHWXxoU07sF4kPFM+cw== - dependencies: - "@web3api/os-js" "0.0.1-prealpha.67" - "@web3api/schema-compose" "0.0.1-prealpha.67" - "@web3api/schema-parse" "0.0.1-prealpha.67" - mustache "4.0.1" - -"@web3api/schema-compose@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/schema-compose/-/schema-compose-0.0.1-prealpha.67.tgz#34a4fb27ef25f458cdfbef20ea7de060a34903d3" - integrity sha512-vP9fNERCGacMZSFFk15TEY9UK2Sw4bi2XDD3tNLcNS/DhpYzKY+5WrTlGCd7520Cv1qFCc7CuyGDWl6/SngJ9A== - dependencies: - "@web3api/schema-parse" "0.0.1-prealpha.67" - graphql "15.5.0" - mustache "4.0.1" - -"@web3api/schema-parse@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/schema-parse/-/schema-parse-0.0.1-prealpha.67.tgz#e60fa7fa38c5e705fe9303710dc0e8b7964169fd" - integrity sha512-5+vfnR5lVIcUi/EIbmkJV+p3qXMciLB1nl4NZJOEVqPFcNGxMaJGMps+ao40jPCaQtL6HwLgwiNxjehzAV+Z3g== - dependencies: - "@dorgjelli/graphql-schema-cycles" "1.1.4" - graphql "15.5.0" - -"@web3api/sha3-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/sha3-plugin-js/-/sha3-plugin-js-0.0.1-prealpha.67.tgz#9fab94f18741602faf2d0c8b8547842b651c2c50" - integrity sha512-VOcTDKeUWL4YSorKPQJnSGsaTorpE1AW2ArYQTBljLSSgVdQb6pK1IV4iV+vlt3wNS3+NbSMcP5VqjwoGem4AQ== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - js-sha3 "0.8.0" - -"@web3api/test-env-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/test-env-js/-/test-env-js-0.0.1-prealpha.67.tgz#8478adfb7ab36aa531d33ce30bdabd3a6e8ffc22" - integrity sha512-nqbAH99OOR/8L4oxujtBNECcHNSfFgeW2erZdn7LV7qgs/bboeEz43zeDz7kpOYpmHMVC8xeC0Kx26evS5aSRw== - dependencies: - axios "0.21.2" - spawn-command "0.0.2-1" - -"@web3api/tracing-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/tracing-js/-/tracing-js-0.0.1-prealpha.67.tgz#af69678f99a17d28785ae3eda8f32bcd3269acba" - integrity sha512-qJspy2esw0S0HomrcmEN7hjdbu5vsqIIXoyvSNVufhRqOMD48ot73wEGV+VYgSUvxHYJPc0iuIaCDG97y2q5jw== - dependencies: - "@opentelemetry/api" "0.20.0" - "@opentelemetry/context-zone" "0.20.0" - "@opentelemetry/core" "0.20.0" - "@opentelemetry/exporter-collector" "0.20.0" - "@opentelemetry/exporter-jaeger" "0.20.0" - "@opentelemetry/exporter-zipkin" "0.20.0" - "@opentelemetry/node" "0.20.0" - "@opentelemetry/propagator-b3" "0.20.0" - "@opentelemetry/tracing" "0.20.0" - "@opentelemetry/web" "0.20.0" - browser-util-inspect "0.2.0" - -"@web3api/uts46-plugin-js@0.0.1-prealpha.67": - version "0.0.1-prealpha.67" - resolved "https://registry.yarnpkg.com/@web3api/uts46-plugin-js/-/uts46-plugin-js-0.0.1-prealpha.67.tgz#147b3e1d7cf6e39de5731c22f7e92c46d838dd2f" - integrity sha512-W+zht1/1kZoWIjj5TfjBXgXGDgWQG5Dwucpz9iMU6CD4Ip+xqS70OtH6T9Q4CQcezXtDdE0iWL8k08rQ3Huaxw== - dependencies: - "@web3api/core-js" "0.0.1-prealpha.67" - idna-uts46-hx "3.4.0" - -"@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - -"@zxing/text-encoding@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" - integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== - -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -abort-controller@3.0.0, abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ansi-color@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" - integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= - -ansi-colors@^3.2.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -any-signal@^2.0.0, any-signal@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-2.1.2.tgz#8d48270de0605f8b218cf9abe8e9c6a0e7418102" - integrity sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ== - dependencies: - abort-controller "^3.0.0" - native-abort-controller "^1.0.3" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3, anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -apisauce@^2.0.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.5.tgz#546229f8f145711b3b022065afb0f43bd304ecb3" - integrity sha512-bkMlz0ZUnyS8vDigej9UBYo5dne9/bQrkgIiIkGaiDHF6e5OxhYRLJDYu65V/Ox86tmWVwepIntAoTmk4Db0Hg== - dependencies: - axios "^0.21.4" - -apollo-link-http-common@^0.2.16: - version "0.2.16" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" - integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== - dependencies: - apollo-link "^1.2.14" - ts-invariant "^0.4.0" - tslib "^1.9.3" - -apollo-link-http@1.5.17: - version "1.5.17" - resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" - integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== - dependencies: - apollo-link "^1.2.14" - apollo-link-http-common "^0.2.16" - tslib "^1.9.3" - -apollo-link@1.2.14, apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - -apollo-utilities@^1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - -app-module-path@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" - integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU= - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -assemblyscript@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.19.1.tgz#8d52332b7cef88e03d15b633e70c5febddd1f444" - integrity sha512-unWcmJsw5H0H2GrTf25GlDJCaNzAveeFYPH5XhP54m540+26KJIurTEHN+xf/EI3MdK7IhThpGCE+pNqiNuLmA== - dependencies: - binaryen "101.0.0-nightly.20210527" - long "^4.0.0" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-iterator-to-pull-stream@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz#3a6b9f3cceadff972ca20eb480e3cb43f8789732" - integrity sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA== - dependencies: - get-iterator "^1.0.2" - pull-stream-to-async-iterator "^1.0.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axios@0.21.2: - version "0.21.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017" - integrity sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg== - dependencies: - follow-redirects "^1.14.0" - -axios@0.21.4, axios@^0.21.4: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -binaryen@101.0.0-nightly.20210527: - version "101.0.0-nightly.20210527" - resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210527.tgz#7677155efc965e0276dd206ed30f2d9e216ed6e2" - integrity sha512-dbKentJwA6H0LfI+pRuzNNzAooJwYFNrg1L8rRw8j6rlfkU815ytNLO+uDzGNcltYehUa5ERZFJHPIdqX12n0w== - -bl@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -blob-to-it@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb" - integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA== - dependencies: - browser-readablestream-to-it "^1.0.3" - -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -borc@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" - integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== - dependencies: - bignumber.js "^9.0.0" - buffer "^5.5.0" - commander "^2.15.0" - ieee754 "^1.1.13" - iso-url "~0.4.7" - json-text-sequence "~0.1.0" - readable-stream "^3.6.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76" - integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw== - -browser-util-inspect@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browser-util-inspect/-/browser-util-inspect-0.2.0.tgz#cdda8ce1a4a07a4386035168a228c8777bff459c" - integrity sha1-zdqM4aSgekOGA1FooijId3v/RZw= - -browserslist@^4.17.5: - version "4.20.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" - integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== - dependencies: - caniuse-lite "^1.0.30001313" - electron-to-chromium "^1.4.76" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= - -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bufrw@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" - integrity sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ== - dependencies: - ansi-color "^0.2.1" - error "^7.0.0" - hexer "^1.5.0" - xtend "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001313: - version "1.0.30001316" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001316.tgz#b44a1f419f82d2e119aa0bbdab5ec15471796358" - integrity sha512-JgUdNoZKxPZFzbzJwy4hDSyGuH/gXz2rN51QmoR8cBQsVo58llD3A0vlRKKRt8FGf5u69P9eQyIH8/z9vN/S0Q== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -chalk@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cids@^1.0.0, cids@^1.1.4: - version "1.1.9" - resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.9.tgz#402c26db5c07059377bcd6fb82f2a24e7f2f4a4f" - integrity sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg== - dependencies: - multibase "^4.0.1" - multicodec "^3.0.1" - multihashes "^4.0.1" - uint8arrays "^3.0.0" - -cids@~0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" - integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== - dependencies: - buffer "^5.6.0" - class-is "^1.1.0" - multibase "^1.0.0" - multicodec "^1.0.1" - multihashes "^1.0.1" - -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-spinners@^2.2.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - -cli-table3@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -code-block-writer@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" - integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@1.4.0, colors@^1.1.2, colors@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" - integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== - -commander@^2.15.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copyfiles@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" - integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== - dependencies: - glob "^7.0.5" - minimatch "^3.0.3" - mkdirp "^1.0.4" - noms "0.0.0" - through2 "^2.0.1" - untildify "^4.0.0" - yargs "^16.1.0" - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-fetch@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" - integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== - dependencies: - node-fetch "2.6.0" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" - integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-compare@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" - integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== - dependencies: - buffer-equal "^1.0.0" - minimatch "^3.0.4" - -dns-over-http-resolver@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9" - integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA== - dependencies: - debug "^4.3.1" - native-fetch "^3.0.0" - receptacle "^1.3.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -dotenv@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -electron-fetch@^1.7.2: - version "1.7.4" - resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.7.4.tgz#af975ab92a14798bfaa025f88dcd2e54a7b0b769" - integrity sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw== - dependencies: - encoding "^0.1.13" - -electron-to-chromium@^1.4.76: - version "1.4.83" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.83.tgz#24a2a7687786896c758e7dd22f218fd3f0ad1e67" - integrity sha512-Wm15TA5pLMOHtsik6uQTVyzXG8IpkVxnXAoAqV4+6zbJH3n5qnVz3iNAW+65r6WSrrYo0w6B8JJ0lcv2NhSmXQ== - -elliptic@6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.0.0: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enquirer@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.4.tgz#c608f2e1134c7f68c1c9ee056de13f9b31076de9" - integrity sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw== - dependencies: - ansi-colors "^3.2.1" - -err-code@^2.0.0, err-code@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -err-code@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.18.5: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-plugin-formatjs@2.12.7: - version "2.12.7" - resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-2.12.7.tgz#cab187f6676581502d495c6131d548382607baec" - integrity sha512-jT4s8v+2zGjiT40ozTk3eCdGvbZUrJ4P5DWdttkKWyNHOqn/ChFQ7qdBz/d64VsZT6kbmznpdjiGlSIqup8/WA== - dependencies: - "@formatjs/ts-transformer" "3.2.0" - "@types/emoji-regex" "^8.0.0" - "@types/eslint" "^7.2.0" - "@typescript-eslint/typescript-estree" "^3.6.0" - emoji-regex "^9.0.0" - intl-messageformat-parser "6.4.2" - tslib "^2.1.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -ethers@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.7.tgz#41c3d774e0a57bfde12b0198885789fb41a14976" - integrity sha512-1Zu9s+z4BgsDAZcGIYACJdWBB6mVtCCmUonj68Njul7STcSdgwOyj0sCAxCUr2Nsmsamckr4E12q3ecvZPGAUw== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - -explain-error@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/explain-error/-/explain-error-1.0.4.tgz#a793d3ac0cad4c6ab571e9968fbbab6cb2532929" - integrity sha1-p5PTrAytTGq1cemWj7urbLJTKSk= - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== - -fast-glob@^3.2.5: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-memoize@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" - integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - -form-data@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fs-extra@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - 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" - -fs-jetpack@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026" - integrity sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ== - dependencies: - minimatch "^3.0.2" - rimraf "^2.6.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.1.2, fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82" - integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^5.1.2, glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - 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" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== - dependencies: - define-properties "^1.1.3" - -gluegun@4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/gluegun/-/gluegun-4.6.1.tgz#f2a65d20378873de87a2143b8c3939ffc9a9e2b6" - integrity sha512-Jd5hV1Uku2rjBg59mYA/bnwLwynK7u9A1zmK/LIb/p5d3pzjDCKRjWFuxZXyPwl9rsvKGhJUQxkFo2HEy8crKQ== - dependencies: - apisauce "^2.0.1" - app-module-path "^2.2.0" - cli-table3 "~0.5.0" - colors "^1.3.3" - cosmiconfig "6.0.0" - cross-spawn "^7.0.0" - ejs "^2.6.1" - enquirer "2.3.4" - execa "^3.0.0" - fs-jetpack "^2.2.2" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.lowercase "^4.3.0" - lodash.lowerfirst "^4.3.1" - lodash.pad "^4.5.1" - lodash.padend "^4.6.1" - lodash.padstart "^4.6.1" - lodash.repeat "^4.1.0" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.trim "^4.5.1" - lodash.trimend "^4.5.1" - lodash.trimstart "^4.5.1" - lodash.uppercase "^4.3.0" - lodash.upperfirst "^4.3.1" - ora "^4.0.0" - pluralize "^8.0.0" - ramdasauce "^2.1.0" - semver "^7.0.0" - which "^2.0.0" - yargs-parser "^16.1.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graphql-json-transform@^1.1.0-alpha.0: - version "1.1.0-alpha.0" - resolved "https://registry.yarnpkg.com/graphql-json-transform/-/graphql-json-transform-1.1.0-alpha.0.tgz#fb0c88d24840067e6c55ac64bbc8d4e5de245d2d" - integrity sha512-I6lR/lYEezSz4iru0f7a/wR8Rzi3pCafk7S0bX2b/WQOtK0vKabxLShGBXIslsi0arMehIjvOPHJl7MpOUqj0w== - -graphql-tag@2.10.4: - version "2.10.4" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.4.tgz#2f301a98219be8b178a6453bb7e33b79b66d8f83" - integrity sha512-O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA== - -graphql-tag@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" - integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== - -graphql@15.5.0: - version "15.5.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" - integrity sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hexer@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" - integrity sha1-uGzoCFmOip0YksVx887dhvyfBlM= - dependencies: - ansi-color "^0.2.1" - minimist "^1.1.0" - process "^0.10.0" - xtend "^4.0.0" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -idna-uts46-hx@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-3.4.0.tgz#aa380e7c04d6bce4f5e26da742c613ea2996f470" - integrity sha512-b1I4qYTcJcX1TANn8OhOGrQUIWOfZUWrLKWDeKbV6posVLjp7OTqFKX3N20efrIMzQM1KhiphOEazBEEUFR9bg== - dependencies: - punycode "^2.1.1" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -import-fresh@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -intl-messageformat-parser@6.4.2: - version "6.4.2" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.4.2.tgz#e2d28c3156c27961ead9d613ca55b6a155078d7d" - integrity sha512-IVNGy24lNEYr/KPWId5tF3KXRHFFbMgzIMI4kUonNa/ide2ywUYyBuOUro1IBGZJqjA2ncBVUyXdYKlMfzqpAA== - dependencies: - "@formatjs/ecma402-abstract" "1.6.2" - tslib "^2.1.0" - -intl-messageformat@9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.5.2.tgz#e72d32152c760b7411e413780e462909987c005a" - integrity sha512-sBGXcSQLyBuBA/kzAYhTpzhzkOGfSwGIau2W6FuwLZk0JE+VF3C+y0077FhVDOcRSi60iSfWzT8QC3Z7//dFxw== - dependencies: - fast-memoize "^2.5.2" - intl-messageformat-parser "6.4.2" - tslib "^2.1.0" - -invert-kv@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" - integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== - -ip-regex@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - -ipfs-core-utils@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.5.4.tgz#c7fa508562086be65cebb51feb13c58abbbd3d8d" - integrity sha512-V+OHCkqf/263jHU0Fc9Rx/uDuwlz3PHxl3qu6a5ka/mNi6gucbFuI53jWsevCrOOY9giWMLB29RINGmCV5dFeQ== - dependencies: - any-signal "^2.0.0" - blob-to-it "^1.0.1" - browser-readablestream-to-it "^1.0.1" - cids "^1.0.0" - err-code "^2.0.3" - ipfs-utils "^5.0.0" - it-all "^1.0.4" - it-map "^1.0.4" - it-peekable "^1.0.1" - multiaddr "^8.0.0" - multiaddr-to-uri "^6.0.0" - parse-duration "^0.4.4" - timeout-abort-controller "^1.1.1" - uint8arrays "^1.1.0" - -ipfs-http-client@48.1.3: - version "48.1.3" - resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-48.1.3.tgz#d9b91b1f65d54730de92290d3be5a11ef124b400" - integrity sha512-+JV4cdMaTvYN3vd4r6+mcVxV3LkJXzc4kn2ToVbObpVpdqmG34ePf1KlvFF8A9gjcel84WpiP5xCEV/IrisPBA== - dependencies: - any-signal "^2.0.0" - bignumber.js "^9.0.0" - cids "^1.0.0" - debug "^4.1.1" - form-data "^3.0.0" - ipfs-core-utils "^0.5.4" - ipfs-utils "^5.0.0" - ipld-block "^0.11.0" - ipld-dag-cbor "^0.17.0" - ipld-dag-pb "^0.20.0" - ipld-raw "^6.0.0" - it-last "^1.0.4" - it-map "^1.0.4" - it-tar "^1.2.2" - it-to-stream "^0.1.2" - merge-options "^2.0.0" - multiaddr "^8.0.0" - multibase "^3.0.0" - multicodec "^2.0.1" - multihashes "^3.0.1" - nanoid "^3.1.12" - native-abort-controller "~0.0.3" - parse-duration "^0.4.4" - stream-to-it "^0.2.2" - uint8arrays "^1.1.0" - -ipfs-utils@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-5.0.1.tgz#7c0053d5e77686f45577257a73905d4523e6b4f7" - integrity sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg== - dependencies: - abort-controller "^3.0.0" - any-signal "^2.1.0" - buffer "^6.0.1" - electron-fetch "^1.7.2" - err-code "^2.0.0" - fs-extra "^9.0.1" - is-electron "^2.2.0" - iso-url "^1.0.0" - it-glob "0.0.10" - it-to-stream "^0.1.2" - merge-options "^2.0.0" - nanoid "^3.1.3" - native-abort-controller "0.0.3" - native-fetch "^2.0.0" - node-fetch "^2.6.0" - stream-to-it "^0.2.0" - -ipld-block@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/ipld-block/-/ipld-block-0.11.1.tgz#c3a7b41aee3244187bd87a73f980e3565d299b6e" - integrity sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw== - dependencies: - cids "^1.0.0" - -ipld-dag-cbor@^0.17.0: - version "0.17.1" - resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz#842e6c250603e5791049168831a425ec03471fb1" - integrity sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw== - dependencies: - borc "^2.1.2" - cids "^1.0.0" - is-circular "^1.0.2" - multicodec "^3.0.1" - multihashing-async "^2.0.0" - uint8arrays "^2.1.3" - -ipld-dag-pb@^0.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz#025c0343aafe6cb9db395dd1dc93c8c60a669360" - integrity sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg== - dependencies: - cids "^1.0.0" - class-is "^1.1.0" - multicodec "^2.0.0" - multihashing-async "^2.0.0" - protons "^2.0.0" - reset "^0.1.0" - run "^1.4.0" - stable "^0.1.8" - uint8arrays "^1.0.0" - -ipld-raw@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-6.0.0.tgz#74d947fcd2ce4e0e1d5bb650c1b5754ed8ea6da0" - integrity sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg== - dependencies: - cids "^1.0.0" - multicodec "^2.0.0" - multihashing-async "^2.0.0" - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-circular@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" - integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-electron@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.1.tgz#751b1dd8a74907422faa5c35aaa0cf66d98086e9" - integrity sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-ip@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" - integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== - dependencies: - ip-regex "^4.0.0" - -is-ipfs@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-1.0.3.tgz#4b8c4995c46beac38f0c05f8cecd77093dd6a6b3" - integrity sha512-7SAfhxp39rxMvr95qjHMtsle1xa7zXpIbhX/Q77iXKtMVnQ0Fr9AVpAUq+bl3HPXGXDpZJFP0hzWBZaMwD6vGg== - dependencies: - buffer "^5.6.0" - cids "~0.8.0" - iso-url "~0.4.7" - mafmt "^7.1.0" - multiaddr "^7.4.3" - multibase "~0.7.0" - multihashes "~0.4.19" - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.3, is-typed-array@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.8.tgz#cbaa6585dc7db43318bc5b89523ea384a6f65e79" - integrity sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-weakref@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -iso-constants@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" - integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== - -iso-url@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" - integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== - -iso-url@~0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" - integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -it-all@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" - integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== - -it-concat@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-1.0.3.tgz#84db9376e4c77bf7bc1fd933bb90f184e7cef32b" - integrity sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA== - dependencies: - bl "^4.0.0" - -it-glob@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.10.tgz#4defd9286f693847c3ff483d2ff65f22e1359ad8" - integrity sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA== - dependencies: - fs-extra "^9.0.1" - minimatch "^3.0.4" - -it-last@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" - integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== - -it-map@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" - integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== - -it-peekable@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" - integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== - -it-reader@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-2.1.0.tgz#b1164be343f8538d8775e10fb0339f61ccf71b0f" - integrity sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw== - dependencies: - bl "^4.0.0" - -it-tar@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-1.2.2.tgz#8d79863dad27726c781a4bcc491f53c20f2866cf" - integrity sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA== - dependencies: - bl "^4.0.0" - buffer "^5.4.3" - iso-constants "^0.1.2" - it-concat "^1.0.0" - it-reader "^2.0.0" - p-defer "^3.0.0" - -it-to-stream@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.2.tgz#7163151f75b60445e86b8ab1a968666acaacfe7b" - integrity sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ== - dependencies: - buffer "^5.6.0" - fast-fifo "^1.0.0" - get-iterator "^1.0.2" - p-defer "^3.0.0" - p-fifo "^1.0.0" - readable-stream "^3.6.0" - -iterable-ndjson@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" - integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== - dependencies: - string_decoder "^1.2.0" - -jaeger-client@^3.15.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" - integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== - dependencies: - node-int64 "^0.4.0" - opentracing "^0.14.4" - thriftrw "^3.5.0" - uuid "^8.3.2" - xorshift "^1.1.1" - -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-diff@^25.2.1: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" - integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== - dependencies: - chalk "^3.0.0" - diff-sequences "^25.2.6" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" - -jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-get-type@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" - integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-util@^26.1.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest@26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsdom@^16.4.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-text-sequence@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" - integrity sha1-py8hfcSvxGKf/1/rME3BvVGi89I= - dependencies: - delimit-stream "0.1.0" - -json5@2.x, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonschema@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" - integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -lcid@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" - integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== - dependencies: - invert-kv "^3.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.lowercase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz#46515aced4acb0b7093133333af068e4c3b14e9d" - integrity sha1-RlFaztSssLcJMTMzOvBo5MOxTp0= - -lodash.lowerfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d" - integrity sha1-3jx7EuAsZSSgBZwvbLfFxSZVoT0= - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.pad@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70" - integrity sha1-QzCUmoM6fI2iLMIPaibE1Z3runA= - -lodash.padend@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e" - integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4= - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.repeat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" - integrity sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ= - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40= - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= - -lodash.trim@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" - integrity sha1-NkJefukL5KpeJ7zruFt9EepHqlc= - -lodash.trimend@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trimend/-/lodash.trimend-4.5.1.tgz#12804437286b98cad8996b79414e11300114082f" - integrity sha1-EoBENyhrmMrYmWt5QU4RMAEUCC8= - -lodash.trimstart@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz#8ff4dec532d82486af59573c39445914e944a7f1" - integrity sha1-j/TexTLYJIavWVc8OURZFOlEp/E= - -lodash.uppercase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz#c404abfd1469f93931f9bb24cf6cc7d57059bc73" - integrity sha1-xASr/RRp+Tkx+bskz2zH1XBZvHM= - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= - -lodash@4.x, lodash@^4.17.15, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -long@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" - integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8= - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -mafmt@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" - integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== - dependencies: - multiaddr "^7.3.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -mem@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" - integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^2.1.0" - p-is-promise "^2.1.0" - -merge-options@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" - integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== - dependencies: - is-plain-obj "^2.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@*: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@1.x, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiaddr-to-uri@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz#8f08a75c6eeb2370d5d24b77b8413e3f0fa9bcc0" - integrity sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A== - dependencies: - multiaddr "^8.0.0" - -multiaddr@^7.3.0, multiaddr@^7.4.3: - version "7.5.0" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" - integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== - dependencies: - buffer "^5.5.0" - cids "~0.8.0" - class-is "^1.1.0" - is-ip "^3.1.0" - multibase "^0.7.0" - varint "^5.0.0" - -multiaddr@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" - integrity sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ== - dependencies: - cids "^1.0.0" - class-is "^1.1.0" - dns-over-http-resolver "^1.0.0" - err-code "^2.0.3" - is-ip "^3.1.0" - multibase "^3.0.0" - uint8arrays "^1.1.0" - varint "^5.0.0" - -multibase@^0.7.0, multibase@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@^1.0.0, multibase@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" - integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@^3.0.0, multibase@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" - integrity sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw== - dependencies: - "@multiformats/base-x" "^4.0.1" - web-encoding "^1.0.6" - -multibase@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559" - integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ== - dependencies: - "@multiformats/base-x" "^4.0.1" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^1.0.0, multicodec@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multicodec@^2.0.0, multicodec@^2.0.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-2.1.3.tgz#b9850635ad4e2a285a933151b55b4a2294152a5d" - integrity sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA== - dependencies: - uint8arrays "1.1.0" - varint "^6.0.0" - -multicodec@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2" - integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw== - dependencies: - uint8arrays "^3.0.0" - varint "^6.0.0" - -multiformats@^9.4.2: - version "9.6.4" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.6.4.tgz#5dce1f11a407dbb69aa612cb7e5076069bb759ca" - integrity sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg== - -multihashes@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" - integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== - dependencies: - buffer "^5.6.0" - multibase "^1.0.1" - varint "^5.0.0" - -multihashes@^3.0.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" - integrity sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ== - dependencies: - multibase "^3.1.0" - uint8arrays "^2.0.5" - varint "^6.0.0" - -multihashes@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05" - integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA== - dependencies: - multibase "^4.0.1" - uint8arrays "^3.0.0" - varint "^5.0.2" - -multihashes@~0.4.15, multihashes@~0.4.19: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -multihashing-async@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843" - integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg== - dependencies: - blakejs "^1.1.0" - err-code "^3.0.0" - js-sha3 "^0.8.0" - multihashes "^4.0.1" - murmurhash3js-revisited "^3.0.0" - uint8arrays "^3.0.0" - -multimatch@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" - integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -murmurhash3js-revisited@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" - integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== - -mustache@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" - integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nanoid@^3.1.12, nanoid@^3.1.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-abort-controller@0.0.3, native-abort-controller@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-0.0.3.tgz#4c528a6c9c7d3eafefdc2c196ac9deb1a5edf2f8" - integrity sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA== - dependencies: - globalthis "^1.0.1" - -native-abort-controller@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" - integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== - -native-fetch@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-2.0.1.tgz#319d53741a7040def92d5dc8ea5fe9416b1fad89" - integrity sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ== - dependencies: - globalthis "^1.0.1" - -native-fetch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" - integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - -node-fetch@^2.6.0: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== - -noms@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" - integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= - dependencies: - inherits "^2.0.1" - readable-stream "~1.0.31" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opentracing@^0.14.4: - version "0.14.7" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" - integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ora@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.0.tgz#374c4ee8c5fb91b5dbcd82de199f188d3e8fd5ec" - integrity sha512-2RaV0LWJgpWEjvpsW57H8pnzdVQJrtAr4VGk9cIqn58ePx5k1b0H3h9DS2Qj4cL1Cm012JSeg+7AcVNsis6AVQ== - dependencies: - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-spinners "^2.2.0" - is-interactive "^1.0.0" - log-symbols "^3.0.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -ora@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== - dependencies: - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-spinners "^2.2.0" - is-interactive "^1.0.0" - log-symbols "^3.0.0" - mute-stream "0.0.8" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-locale@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" - integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== - dependencies: - execa "^4.0.0" - lcid "^3.0.0" - mem "^5.0.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-defer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" - integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-fifo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" - integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== - dependencies: - fast-fifo "^1.0.0" - p-defer "^3.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-duration@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-0.4.4.tgz#11c0f51a689e97d06c57bd772f7fda7dc013243c" - integrity sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg== - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty-format@^25.2.1, pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== - dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" - integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -protocol-buffers-schema@^3.3.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" - integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== - -protons@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/protons/-/protons-2.0.3.tgz#94f45484d04b66dfedc43ad3abff1e8907994bb2" - integrity sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA== - dependencies: - protocol-buffers-schema "^3.3.1" - signed-varint "^2.0.1" - uint8arrays "^3.0.0" - varint "^5.0.0" - -psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pull-stream-to-async-iterator@^1.0.1, pull-stream-to-async-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz#5cc1a3a146ef6bbf01c17755647369b683b24986" - integrity sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA== - dependencies: - pull-stream "^3.6.9" - -pull-stream@^3.6.9: - version "3.6.14" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -ramda@^0.24.1: - version "0.24.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" - integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc= - -ramdasauce@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ramdasauce/-/ramdasauce-2.1.3.tgz#acb45ecc7e4fc4d6f39e19989b4a16dff383e9c2" - integrity sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg== - dependencies: - ramda "^0.24.1" - -react-is@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.31: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -receptacle@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" - integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== - dependencies: - ms "^2.1.1" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regex-parser@2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -reset@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/reset/-/reset-0.1.0.tgz#9fc7314171995ae6cb0b7e58b06ce7522af4bafb" - integrity sha1-n8cxQXGZWubLC35YsGznUir0uvs= - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.18.1: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retimer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" - integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@3.0.2, rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/run/-/run-1.4.0.tgz#e17d9e9043ab2fe17776cb299e1237f38f0b4ffa" - integrity sha1-4X2ekEOrL+F3dsspnhI3848LT/o= - dependencies: - minimatch "*" - -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -"semver@2 || 3 || 4 || 5", semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.3.5, semver@7.x, semver@^7.0.0, semver@^7.1.3, semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signed-varint@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" - integrity sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk= - dependencies: - varint "~5.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.17, source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spawn-command@0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-to-it@^0.2.0, stream-to-it@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" - integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== - dependencies: - get-iterator "^1.0.2" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - 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" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.1.1, string_decoder@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -thriftrw@^3.5.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" - integrity sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw== - dependencies: - bufrw "^1.3.0" - error "7.0.2" - long "^2.4.0" - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -through2@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -timeout-abort-controller@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29" - integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ== - dependencies: - abort-controller "^3.0.0" - retimer "^2.0.0" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - -ts-jest@26.5.4: - version "26.5.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.4.tgz#207f4c114812a9c6d5746dd4d1cdf899eafc9686" - integrity sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - jest-util "^26.1.0" - json5 "2.x" - lodash "4.x" - make-error "1.x" - mkdirp "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-morph@10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-10.0.1.tgz#5a620cc4ef85e3e6d161989e690f44d0a0f723b0" - integrity sha512-T1zufImtp5goTLTFhzi7XuKR1y/f+Jwz1gSULzB045LFjXuoqVlR87sfkpyWow8u2JwgusCJrhOnwmHCFNutTQ== - dependencies: - "@dsherret/to-absolute-glob" "^2.0.2" - "@ts-morph/common" "~0.8.0" - code-block-writer "^10.1.1" - -ts-node@8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tsutils@^3.17.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.7.tgz#7168032c43d2a2671c95c07812f69523c79590af" - integrity sha512-yi7M4y74SWvYbnazbn8/bmJmX4Zlej39ZOqwG/8dut/MYoSQ119GY9ZFbbGsD4PFZYWxqik/XsP3vk3+W5H3og== - -typescript@^4.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== - -uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" - integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== - dependencies: - multibase "^3.0.0" - web-encoding "^1.0.2" - -uint8arrays@^2.0.5, uint8arrays@^2.1.3: - version "2.1.10" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a" - integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A== - dependencies: - multiformats "^9.4.2" - -uint8arrays@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.0.0.tgz#260869efb8422418b6f04e3fac73a3908175c63b" - integrity sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA== - dependencies: - multiformats "^9.4.2" - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@^0.12.3: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -uuid@8.3.2, uuid@^8.3.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -varint@^5.0.0, varint@^5.0.2, varint@~5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -web-encoding@^1.0.2, web-encoding@^1.0.6: - version "1.1.5" - resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-typed-array@^1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.7.tgz#2761799b9a22d4b8660b3c1b40abaa7739691793" - integrity sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.18.5" - foreach "^2.0.5" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.7" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.0, which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - -ws@7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== - -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@^7.4.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xorshift@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" - integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== - -xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@20.x, yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.1.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - -zen-observable@^0.8.0: - version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" - integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== - -zone.js@^0.11.0: - version "0.11.5" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.11.5.tgz#ab0b449e91fadb5ebb2db189ffe1b7b6048dc8b1" - integrity sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g== - dependencies: - tslib "^2.3.0" From bc6fe4ed832d2f95020ece1e351ac2a333b135b2 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Thu, 26 May 2022 12:45:43 -0500 Subject: [PATCH 23/23] remove duplicate parser functions --- packages/cli/src/lib/helpers/optionParsers.ts | 226 ------------------ 1 file changed, 226 deletions(-) delete mode 100644 packages/cli/src/lib/helpers/optionParsers.ts diff --git a/packages/cli/src/lib/helpers/optionParsers.ts b/packages/cli/src/lib/helpers/optionParsers.ts deleted file mode 100644 index 75b6e9814f..0000000000 --- a/packages/cli/src/lib/helpers/optionParsers.ts +++ /dev/null @@ -1,226 +0,0 @@ -import { intlMsg } from "../intl"; -import { - defaultAppManifest, - defaultWeb3ApiManifest, - defaultPluginManifest, -} from "../manifest"; -import { importTypescriptModule, resolvePathIfExists } from "../system"; -import { getTestEnvClientConfig } from "../test-env"; -import { validateClientConfig } from "./validate-client-config"; - -import path from "path"; -import fs from "fs"; -import { Web3ApiClientConfig } from "@web3api/client-js"; -import { executeMaybeAsyncFunction } from "@web3api/core-js"; - -const defaultBuildDir = "./build"; -const defaultPluginPublishDir = "./build"; -const defaultAppCodegenDir = "./src/w3"; -const defaultPluginCodegenDir = "./src/w3"; -const defaultCodegenDir = "./w3"; - -export function parseWasmManifestFileOption( - manifestFile: string | undefined, - _: unknown -): string { - const manifestPaths = manifestFile - ? [manifestFile as string] - : defaultWeb3ApiManifest; - - manifestFile = resolvePathIfExists(manifestPaths); - - if (!manifestFile) { - console.error( - intlMsg.commands_build_error_manifestNotFound({ - paths: manifestPaths.join(", "), - }) - ); - process.exit(1); - } - - return manifestFile; -} - -export function defaultWasmManifestFileOption(): string { - return parseWasmManifestFileOption(undefined, undefined); -} - -export function parseAppManifestFileOption( - manifestFile: string | undefined, - _: unknown -): string { - const manifestPaths = manifestFile - ? [manifestFile as string] - : defaultAppManifest; - - manifestFile = resolvePathIfExists(manifestPaths); - - if (!manifestFile) { - console.error( - intlMsg.commands_build_error_manifestNotFound({ - paths: manifestPaths.join(", "), - }) - ); - process.exit(1); - } - - return manifestFile; -} - -export function defaultAppManifestFileOption(): string { - return parseAppManifestFileOption(undefined, undefined); -} - -export function parsePluginManifestFileOption( - manifestFile: string | undefined, - _: unknown -): string { - const manifestPaths = manifestFile - ? [manifestFile as string] - : defaultPluginManifest; - manifestFile = resolvePathIfExists(manifestPaths); - - if (!manifestFile) { - console.error( - intlMsg.commands_build_error_manifestNotFound({ - paths: manifestPaths.join(", "), - }) - ); - process.exit(1); - } - - return manifestFile; -} - -export function defaultPluginManifestFileOption(): string { - return parsePluginManifestFileOption(undefined, undefined); -} - -export function parseBuildOutputDirOption( - outputDir: string | undefined, - _: unknown -): string { - return outputDir ? path.resolve(outputDir) : path.resolve(defaultBuildDir); -} - -export function defaultBuildOutputDirOption(): string { - return parseBuildOutputDirOption(undefined, undefined); -} - -export function parseAppCodegenDirOption( - codegenDir: string | undefined, - _: unknown -): string { - return codegenDir - ? path.resolve(codegenDir) - : path.resolve(defaultAppCodegenDir); -} - -export function defaultAppCodegenDirOption(): string { - return parseAppCodegenDirOption(undefined, undefined); -} - -export function parsePluginCodegenDirOption( - codegenDir: string | undefined, - _: unknown -): string { - return codegenDir - ? path.resolve(codegenDir) - : path.resolve(defaultPluginCodegenDir); -} - -export function parseCodegenDirOption( - codegenDir: string | undefined, - _: unknown -): string { - return codegenDir - ? path.resolve(codegenDir) - : path.resolve(defaultCodegenDir); -} - -export function parseCodegenScriptOption( - script: string | undefined, - _: unknown -): string | undefined { - return script ? path.resolve(script) : undefined; -} - -export function parsePluginPublishDirOption( - publishDir: string | undefined, - _: unknown -): string | undefined { - return publishDir - ? path.resolve(publishDir) - : path.resolve(defaultPluginPublishDir); -} - -export function parseRecipeScriptPathOption( - script: string, - _: unknown -): string { - const absPath = path.resolve(script); - if (!fs.existsSync(absPath)) { - throw new Error("Recipe script not found"); - } - return absPath; -} - -export async function parseClientConfigOption( - _clientConfig: string, - _: unknown -): Promise> { - const configPath = path.resolve(_clientConfig); - - let finalClientConfig: Partial; - - try { - finalClientConfig = await getTestEnvClientConfig(); - } catch (e) { - console.error(intlMsg.commands_query_error_noTestEnvFound()); - process.exit(1); - } - - if (configPath) { - let configModule; - if (configPath.endsWith(".js")) { - configModule = await import(path.resolve(configPath)); - } else if (configPath.endsWith(".ts")) { - configModule = await importTypescriptModule(path.resolve(configPath)); - } else { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigInvalidFileExt( - { module: configPath } - ); - console.error(configsModuleMissingExportMessage); - process.exit(1); - } - - if (!configModule || !configModule.getClientConfig) { - const configsModuleMissingExportMessage = intlMsg.commands_query_error_clientConfigModuleMissingExport( - { module: configModule } - ); - console.error(configsModuleMissingExportMessage); - process.exit(1); - } - - finalClientConfig = await executeMaybeAsyncFunction( - configModule.getClientConfig, - finalClientConfig - ); - - try { - validateClientConfig(finalClientConfig); - } catch (e) { - console.error(e.message); - process.exit(1); - } - } - - return finalClientConfig; -} - -export function parseRecipeOutputFilePathOption( - outputFile: string, - _: unknown -): string { - return path.resolve(outputFile); -}