From 5acb3e6d47872a6fad76885330903776ff2d409e Mon Sep 17 00:00:00 2001 From: Michael Yali Date: Fri, 20 Aug 2021 21:54:19 +0300 Subject: [PATCH] feat(scripts): added digest command --- README.md | 95 + lib/README.md | 95 + lib/bin/mrepo.js | 6 +- lib/bin/mrepo.js.map | 2 +- lib/commands/digest.command.d.ts | 28 + lib/commands/digest.command.js | 179 ++ lib/commands/digest.command.js.map | 1 + .../main.commands.d.ts} | 2 +- .../main.commands.js} | 8 +- lib/commands/main.commands.js.map | 1 + lib/constants.d.ts | 10 + lib/constants.js | 14 +- lib/constants.js.map | 2 +- lib/interfaces/index.d.ts | 1 + lib/interfaces/index.js | 1 + lib/interfaces/index.js.map | 2 +- .../mrepo-digest-config-file.interface.d.ts | 26 + .../mrepo-digest-config-file.interface.js | 3 + .../mrepo-digest-config-file.interface.js.map | 1 + lib/package.json | 4 +- .../scripts-generator.command.js.map | 1 - lib/utils/config-file.loader.d.ts | 2 +- lib/utils/config-file.loader.js | 4 +- lib/utils/config-file.loader.js.map | 2 +- lib/utils/digest-config-file.loader.d.ts | 2 + lib/utils/digest-config-file.loader.js | 112 + lib/utils/digest-config-file.loader.js.map | 1 + lib/utils/index.d.ts | 1 + lib/utils/index.js | 1 + lib/utils/index.js.map | 2 +- package-lock.json | 1846 +++++++---------- package.json | 5 +- src/bin/mrepo.ts | 7 +- src/commands/digest.command.ts | 283 +++ .../main.commands.ts} | 2 +- src/constants.ts | 10 + src/interfaces/index.ts | 1 + .../mrepo-digest-config-file.interface.ts | 31 + src/utils/config-file.loader.ts | 5 +- src/utils/digest-config-file.loader.ts | 118 ++ src/utils/index.ts | 1 + 41 files changed, 1821 insertions(+), 1097 deletions(-) create mode 100644 lib/commands/digest.command.d.ts create mode 100644 lib/commands/digest.command.js create mode 100644 lib/commands/digest.command.js.map rename lib/{scripts-generator/scripts-generator.command.d.ts => commands/main.commands.d.ts} (79%) rename lib/{scripts-generator/scripts-generator.command.js => commands/main.commands.js} (98%) create mode 100644 lib/commands/main.commands.js.map create mode 100644 lib/interfaces/mrepo-digest-config-file.interface.d.ts create mode 100644 lib/interfaces/mrepo-digest-config-file.interface.js create mode 100644 lib/interfaces/mrepo-digest-config-file.interface.js.map delete mode 100644 lib/scripts-generator/scripts-generator.command.js.map create mode 100644 lib/utils/digest-config-file.loader.d.ts create mode 100644 lib/utils/digest-config-file.loader.js create mode 100644 lib/utils/digest-config-file.loader.js.map create mode 100644 src/commands/digest.command.ts rename src/{scripts-generator/scripts-generator.command.ts => commands/main.commands.ts} (99%) create mode 100644 src/interfaces/mrepo-digest-config-file.interface.ts create mode 100644 src/utils/digest-config-file.loader.ts diff --git a/README.md b/README.md index 5ec27d2..2ca5ba3 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,101 @@ $ mrepo unlink $ mrepo unlink packageName ``` +### mrepo digest + +_Install or create symlinks from mrepos to local target repositories._ + +_Info:_ + +```shell +mrepo digest|d [options] [from] [to] + +Arguments: + from Mrepo names from the digest config file, comma-separated (optional) + to Target names from the digest config file, comma-separated (optional) + +Options: + -c, --config Config file name or path (optional) (default: "mrepo-digest.json") + -m, --mode Digest mode. One of ln, install. (optional) + -p, --packages Mrepo packages to digest, comma-separated (optional) + --installVersion Install packages with version + --quiet Run quietly (default: false) + -h, --help display info +``` + +_Usage:_ + +1. Create a config json (default name "mrepo-digest.json") and place it somewhere in your system. + +_Example config:_ + +```json +{ + "paths": [ + { + "name": "first", + "path": "/some/path/to/first" + }, + { + "name": "second", + "path": "/some/path/to/second" + }, + { + "name": "third", + "path": "/some/path/to/third" + } + ], + "mrepos": [ + { + "name": "first", + "defaultPackages": ["one-package", "another-cool-package"], + "targets": [ + { + "name": "second", + "packages": ["awesome-package"] + }, + { + "name": "third" + } + ] + }, + { + "name": "second", + "targets": [ + { + "name": "third", + "packages": ["from-second-package"], + "noDefaultPackages": true, + "mode": "install" + } + ] + } + ], + "targets": [ + { + "name": "second", + "installExec": "yarn add -W" + }, + { + "name": "third", + "installExec": "npm i" + } + ], + "mode": "ln" +} +``` + +In this example `first` and `second` are both `mrepo` generated monorepositories, where `second` depends on `first` (e.g. one has only public packages, another has only private packages under the same npm scope) and the `third` is just another node project wich depends on packages from both those mrepos. + +`mrepos.defaultPackages` and `mrepos.targets.packages` are merged (`mrepos.targets.noDefaultPackages` prevents using default packages) . Can be overridden by using `--packages` option. + +`mode` and `mrepos.targets.mode` have two values: `ln` - create symbolic links for packages from mrepo, `install` - install packages. Can be overridden by using `--mode` option. + +```shell +$ mrepo digest +$ mrepo digest -c another-config.json first third --mode install +``` + ### mrepo release _Start release new version: bump package(s) version, generate changelog, git commit and push._ diff --git a/lib/README.md b/lib/README.md index 99d91fe..c23066e 100644 --- a/lib/README.md +++ b/lib/README.md @@ -235,6 +235,101 @@ $ mrepo unlink $ mrepo unlink packageName ``` +### mrepo digest + +_Install or create symlinks from mrepos to local target repositories._ + +_Info:_ + +```shell +mrepo digest|d [options] [from] [to] + +Arguments: + from Mrepo names from the digest config file, comma-separated (optional) + to Target names from the digest config file, comma-separated (optional) + +Options: + -c, --config Config file name or path (optional) (default: "mrepo-digest.json") + -m, --mode Digest mode. One of ln, install. (optional) + -p, --packages Mrepo packages to digest, comma-separated (optional) + --installVersion Install packages with version + --quiet Run quietly (default: false) + -h, --help display info +``` + +_Usage:_ + +1. Create a config json (default name "mrepo-digest.json") and place it somewhere in your system. + +_Example config:_ + +```json +{ + "paths": [ + { + "name": "first", + "path": "/some/path/to/first" + }, + { + "name": "second", + "path": "/some/path/to/second" + }, + { + "name": "third", + "path": "/some/path/to/third" + } + ], + "mrepos": [ + { + "name": "first", + "defaultPackages": ["one-package", "another-cool-package"], + "targets": [ + { + "name": "second", + "packages": ["awesome-package"] + }, + { + "name": "third" + } + ] + }, + { + "name": "second", + "targets": [ + { + "name": "third", + "packages": ["from-second-package"], + "noDefaultPackages": true, + "mode": "install" + } + ] + } + ], + "targets": [ + { + "name": "second", + "installExec": "yarn add -W" + }, + { + "name": "third", + "installExec": "npm i" + } + ], + "mode": "ln" +} +``` + +In this example `first` and `second` are both `mrepo` generated monorepositories, where `second` depends on `first` (e.g. one has only public packages, another has only private packages under the same npm scope) and the `third` is just another node project wich depends on packages from both those mrepos. + +`mrepos.defaultPackages` and `mrepos.targets.packages` are merged (`mrepos.targets.noDefaultPackages` prevents using default packages) . Can be overridden by using `--packages` option. + +`mode` and `mrepos.targets.mode` have two values: `ln` - create symbolic links for packages from mrepo, `install` - install packages. Can be overridden by using `--mode` option. + +```shell +$ mrepo digest +$ mrepo digest -c another-config.json first third --mode install +``` + ### mrepo release _Start release new version: bump package(s) version, generate changelog, git commit and push._ diff --git a/lib/bin/mrepo.js b/lib/bin/mrepo.js index 46cdd3e..8b351a4 100644 --- a/lib/bin/mrepo.js +++ b/lib/bin/mrepo.js @@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); const constants_1 = require("../constants"); const monorepo_generator_command_1 = require("../monorepo-generator/monorepo-generator.command"); -const scripts_generator_command_1 = require("../scripts-generator/scripts-generator.command"); +const digest_command_1 = require("../commands/digest.command"); +const main_commands_1 = require("../commands/main.commands"); const package_generator_command_1 = require("../package-generator/package-generator.command"); const utils_1 = require("../utils"); const packageVersion = utils_1.loadPackageJsonVersion(); @@ -14,12 +15,13 @@ const configFile = utils_1.loadConfigFile(); if (configFile) { utils_1.logger.notice('cli', `validating ${constants_1.CONFIG_FILE_NAME}`); utils_1.validateConfigFile(configFile); - scripts_generator_command_1.ScriptsGeneratorCommand.load(program, configFile); + main_commands_1.MainCommands.load(program, configFile); package_generator_command_1.PackageGeneratorCommand.load(program, configFile); } else { monorepo_generator_command_1.MonorepoGeneratorCommand.load(program); } +digest_command_1.DigestCommand.load(program); program.version(utils_1.loadPackageJsonVersion()); program.parse(process.argv); //# sourceMappingURL=mrepo.js.map \ No newline at end of file diff --git a/lib/bin/mrepo.js.map b/lib/bin/mrepo.js.map index bd4f5bd..a2c2b81 100644 --- a/lib/bin/mrepo.js.map +++ b/lib/bin/mrepo.js.map @@ -1 +1 @@ -{"version":3,"file":"mrepo.js","sourceRoot":"","sources":["../../src/bin/mrepo.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,4CAAgD;AAChD,iGAA4F;AAC5F,8FAAyF;AACzF,8FAAyF;AACzF,oCAA8F;AAE9F,MAAM,cAAc,GAAG,8BAAsB,EAAE,CAAC;AAChD,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,UAAU,GAAG,sBAAc,EAAE,CAAC;AAEpC,IAAI,UAAU,EAAE;IACd,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,4BAAgB,EAAE,CAAC,CAAC;IACvD,0BAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,mDAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,mDAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;CACnD;KAAM;IACL,qDAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,OAAO,CAAC,OAAO,CAAC,8BAAsB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"mrepo.js","sourceRoot":"","sources":["../../src/bin/mrepo.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,4CAAgD;AAChD,iGAA4F;AAC5F,+DAA2D;AAC3D,6DAAyD;AACzD,8FAAyF;AACzF,oCAA8F;AAE9F,MAAM,cAAc,GAAG,8BAAsB,EAAE,CAAC;AAChD,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,UAAU,GAAG,sBAAc,EAAE,CAAC;AAEpC,IAAI,UAAU,EAAE;IACd,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,4BAAgB,EAAE,CAAC,CAAC;IACvD,0BAAkB,CAAC,UAAU,CAAC,CAAC;IAE/B,4BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvC,mDAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;CACnD;KAAM;IACL,qDAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,8BAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,OAAO,CAAC,8BAAsB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/commands/digest.command.d.ts b/lib/commands/digest.command.d.ts new file mode 100644 index 0000000..b026620 --- /dev/null +++ b/lib/commands/digest.command.d.ts @@ -0,0 +1,28 @@ +import { CommanderStatic } from 'commander'; +import { DIGEST_MODE } from '../constants'; +import { IMrepoConfigFile, IMrepoDigestConfigFile, IMrepoDigestConfigFilePath, IMrepoDigestConfigFileMrepo, IMrepoDigestConfigFileMrepoTarget, IMrepoDigestConfigFileTarget } from '../interfaces'; +interface DigestCommandOptions { + config: string; + mode: DIGEST_MODE; + packages?: string; + installVersion?: string; + quiet?: boolean; +} +export declare class DigestCommand { + static load(program: CommanderStatic['program']): void; + static runDigest(from: string, to: string, options: DigestCommandOptions): Promise; + static removeFromNodeModules(mrepoConfig: IMrepoConfigFile, targetPath: IMrepoDigestConfigFilePath, digestPackages: string[]): void; + static runInstall(mrepoConfig: IMrepoConfigFile, targetPath: IMrepoDigestConfigFilePath, target: IMrepoDigestConfigFileTarget, digestPackages: string[], options: DigestCommandOptions): void; + static runSymlink(mrepoConfig: IMrepoConfigFile, mrepoPath: IMrepoDigestConfigFilePath, targetPath: IMrepoDigestConfigFilePath, digestPackages: string[]): Promise; + static getMode(config: IMrepoDigestConfigFile, mrepoTarget: IMrepoDigestConfigFileMrepoTarget, options: DigestCommandOptions): DIGEST_MODE; + static getPathFromConfig(name: string, config: IMrepoDigestConfigFile, options: DigestCommandOptions): IMrepoDigestConfigFilePath; + static getMreposFromConfig(from: string, config: IMrepoDigestConfigFile, options: DigestCommandOptions): IMrepoDigestConfigFileMrepo[]; + static getMrepoFromConfig(name: string, config: IMrepoDigestConfigFile, options: DigestCommandOptions): IMrepoDigestConfigFileMrepo; + static getMrepoTargetFromConfig(mrepo: IMrepoDigestConfigFileMrepo, to: string): IMrepoDigestConfigFileMrepoTarget[]; + static getTargetFromConfig(name: string, config: IMrepoDigestConfigFile, options: DigestCommandOptions): IMrepoDigestConfigFileTarget; + static loadMrepoConfigFile(name: string, path: string): IMrepoConfigFile; + static getTargetDigestPackages(mrepo: IMrepoDigestConfigFileMrepo, mrepoTarget: IMrepoDigestConfigFileMrepoTarget, mrepoConfig: IMrepoConfigFile, options: DigestCommandOptions): string[]; + static exit(msg: string): void; + static uniqArr(arr: any[]): any[]; +} +export {}; diff --git a/lib/commands/digest.command.js b/lib/commands/digest.command.js new file mode 100644 index 0000000..3e1a5e2 --- /dev/null +++ b/lib/commands/digest.command.js @@ -0,0 +1,179 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DigestCommand = void 0; +const util_1 = require("@nestled/util"); +const child_process_1 = require("child_process"); +const emoji = require("node-emoji"); +const path_1 = require("path"); +const symlinkDir = require("symlink-dir"); +const constants_1 = require("../constants"); +const utils_1 = require("../utils"); +var AvailableCommands; +(function (AvailableCommands) { + AvailableCommands["DIGEST"] = "digest"; +})(AvailableCommands || (AvailableCommands = {})); +class DigestCommand { + static load(program) { + program + .command(AvailableCommands.DIGEST) + .alias('d') + .arguments('[from]') + .arguments('[to]') + .option('-c, --config ', 'Config file name or path (optional)', constants_1.DIGEST_CONFIG_FILE_NAME) + .option('-m, --mode ', `Digest mode. One of ${constants_1.DIGEST_MODE_LIST.join(', ')}. (optional)`) + .option('-p, --packages ', 'Mrepo packages to digest, comma-separated (optional)') + .option('--installVersion ', 'Install packages with version') + .option('--quiet', 'Run quietly', false) + .description('Digest packages from mrepos to target repositories', { + from: 'Mrepo names from the digest config file, comma-separated (optional)', + to: 'Target names from the digest config file, comma-separated (optional)', + }) + .action(async (from, to, options) => this.runDigest(from, to, options)); + } + static async runDigest(from, to, options) { + const config = utils_1.loadDigestConfigFile(options.config); + const mrepos = this.getMreposFromConfig(from, config, options); + for (const mrepo of mrepos) { + const mrepoPath = this.getPathFromConfig(mrepo.name, config, options); + const mrepoConfig = this.loadMrepoConfigFile(mrepo.name, mrepoPath.path); + const mrepoTargets = this.getMrepoTargetFromConfig(mrepo, to); + if (util_1.isArrayFull(mrepoTargets)) { + for (const mrepoTarget of mrepoTargets) { + const target = this.getTargetFromConfig(mrepoTarget.name, config, options); + const targetPath = this.getPathFromConfig(target.name, config, options); + const digestPackages = this.getTargetDigestPackages(mrepo, mrepoTarget, mrepoConfig, options); + if (util_1.isArrayFull(digestPackages)) { + const mode = this.getMode(config, mrepoTarget, options); + switch (mode) { + case constants_1.DIGEST_MODE.INSTALL: + this.runInstall(mrepoConfig, targetPath, target, digestPackages, options); + break; + case constants_1.DIGEST_MODE.LINK: + await this.runSymlink(mrepoConfig, mrepoPath, targetPath, digestPackages); + break; + default: + break; + } + utils_1.logger.info(AvailableCommands.DIGEST, `${constants_1.DIGEST_MODE_DISPLAY[mode]}: ${mrepo.name} -> ${target.name}`); + } + else { + utils_1.logger.info(AvailableCommands.DIGEST, `Mrepo ${mrepo.name} has no selected allowed packages to digest for ${target.name}`); + } + } + } + else { + utils_1.logger.info(AvailableCommands.DIGEST, `Mrepo ${mrepo.name} has no targets to digest`); + } + } + } + static removeFromNodeModules(mrepoConfig, targetPath, digestPackages) { + const packagesStr = digestPackages + .map((p) => path_1.join(targetPath.path, 'node_modules', `@${mrepoConfig.workspace.scope}`, p)) + .join(' '); + child_process_1.execSync(`npx rimraf ${packagesStr}`, { + stdio: 'ignore', + }); + } + static runInstall(mrepoConfig, targetPath, target, digestPackages, options) { + this.removeFromNodeModules(mrepoConfig, targetPath, digestPackages); + const packagesStr = digestPackages + .map((p) => `@${mrepoConfig.workspace.scope}/${p}${options.installVersion ? '@' + options.installVersion : ''}`) + .join(' '); + const cmd = `cd ${targetPath.path} && ${target.installExec} ${packagesStr}`; + if (!options.quiet) { + utils_1.logger.info(AvailableCommands.DIGEST, cmd); + } + child_process_1.execSync(cmd, { + stdio: options.quiet ? 'ignore' : 'inherit', + }); + } + static async runSymlink(mrepoConfig, mrepoPath, targetPath, digestPackages) { + this.removeFromNodeModules(mrepoConfig, targetPath, digestPackages); + for (const digestPackage of digestPackages) { + const sourcePath = path_1.join(mrepoPath.path, mrepoConfig.workspace.name, digestPackage); + const destPath = path_1.join(targetPath.path, 'node_modules', `@${mrepoConfig.workspace.scope}`, digestPackage); + await symlinkDir(sourcePath, destPath); + } + } + static getMode(config, mrepoTarget, options) { + if (options.mode) { + if (!util_1.isIn(options.mode, constants_1.DIGEST_MODE_LIST)) { + const msg = `${emoji.get(':flushed:')} Invalid digest mode. One of ${constants_1.DIGEST_MODE_LIST.join(', ')} expected`; + this.exit(msg); + } + else { + return options.mode; + } + } + return mrepoTarget.mode ? mrepoTarget.mode : config.mode ? config.mode : constants_1.DIGEST_MODE.INSTALL; + } + static getPathFromConfig(name, config, options) { + const found = config.paths.find((o) => o.name === name); + if (!(found === null || found === void 0 ? void 0 : found.path)) { + const msg = `${emoji.get(':flushed:')} Can't find path for ${name} in ${options.config}`; + this.exit(msg); + } + return found; + } + static getMreposFromConfig(from, config, options) { + return from ? from.split(',').map((name) => this.getMrepoFromConfig(name, config, options)) : config.mrepos; + } + static getMrepoFromConfig(name, config, options) { + const found = config.mrepos.find((o) => o.name === name); + if (!found) { + const msg = `${emoji.get(':flushed:')} Can't find mrepo ${name} in ${options.config}`; + this.exit(msg); + } + return found; + } + static getMrepoTargetFromConfig(mrepo, to) { + if (!util_1.isArrayFull(mrepo.targets)) { + return []; + } + const toTargets = !to ? [] : to.split(','); + if (!util_1.isArrayFull(toTargets)) { + return mrepo.targets; + } + return mrepo.targets.filter((mt) => util_1.isIn(mt.name, toTargets)); + } + static getTargetFromConfig(name, config, options) { + const found = config.targets.find((o) => o.name === name); + if (!found) { + const msg = `${emoji.get(':flushed:')} Can't find target ${name} in ${options.config}`; + this.exit(msg); + } + return found; + } + static loadMrepoConfigFile(name, path) { + const mrepoConfig = utils_1.loadConfigFile(path); + if (!mrepoConfig) { + const msg = `${emoji.get(':flushed:')} Can't find ${constants_1.CONFIG_FILE_NAME} for ${name}`; + this.exit(msg); + } + return mrepoConfig; + } + static getTargetDigestPackages(mrepo, mrepoTarget, mrepoConfig, options) { + const optionsPackages = options.packages ? options.packages.split(',') : []; + let allPackages; + if (util_1.isArrayFull(optionsPackages)) { + allPackages = optionsPackages; + } + else { + const defaultPackages = util_1.isArrayFull(mrepo.defaultPackages) ? mrepo.defaultPackages : []; + const mrepoTargetPackages = util_1.isArrayFull(mrepoTarget.packages) ? mrepoTarget.packages : []; + const combinedPackages = [...mrepoTargetPackages, ...(mrepoTarget.noDefaultPackages ? [] : defaultPackages)]; + allPackages = combinedPackages; + } + allPackages = allPackages.filter((v, i, a) => a.indexOf(v) === i); + return mrepoConfig.workspace.packages.filter((p) => util_1.isIn(p.name, allPackages)).map((p) => p.name); + } + static exit(msg) { + utils_1.logger.error(AvailableCommands.DIGEST, msg); + process.exit(1); + } + static uniqArr(arr) { + return arr.filter((v, i, a) => a.indexOf(v) === i); + } +} +exports.DigestCommand = DigestCommand; +//# sourceMappingURL=digest.command.js.map \ No newline at end of file diff --git a/lib/commands/digest.command.js.map b/lib/commands/digest.command.js.map new file mode 100644 index 0000000..c211dc1 --- /dev/null +++ b/lib/commands/digest.command.js.map @@ -0,0 +1 @@ +{"version":3,"file":"digest.command.js","sourceRoot":"","sources":["../../src/commands/digest.command.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/scripts-generator/scripts-generator.command.d.ts b/lib/commands/main.commands.d.ts similarity index 79% rename from lib/scripts-generator/scripts-generator.command.d.ts rename to lib/commands/main.commands.d.ts index d6fd97e..3aa5f17 100644 --- a/lib/scripts-generator/scripts-generator.command.d.ts +++ b/lib/commands/main.commands.d.ts @@ -1,5 +1,5 @@ import { CommanderStatic } from 'commander'; import { IMrepoConfigFile } from '../interfaces'; -export declare class ScriptsGeneratorCommand { +export declare class MainCommands { static load(program: CommanderStatic['program'], configFile: IMrepoConfigFile): void; } diff --git a/lib/scripts-generator/scripts-generator.command.js b/lib/commands/main.commands.js similarity index 98% rename from lib/scripts-generator/scripts-generator.command.js rename to lib/commands/main.commands.js index 5d17059..253a539 100644 --- a/lib/scripts-generator/scripts-generator.command.js +++ b/lib/commands/main.commands.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ScriptsGeneratorCommand = void 0; +exports.MainCommands = void 0; const util_1 = require("@nestled/util"); const color = require("chalk"); const child_process_1 = require("child_process"); @@ -19,7 +19,7 @@ var AvailableCommands; })(AvailableCommands || (AvailableCommands = {})); const RELEASE_SEMVER = ['patch', 'minor', 'major', 'prepatch', 'preminor', 'premajor', 'prerelease', 'select']; const RELEASE_SEMVER_STR = RELEASE_SEMVER.join(', '); -class ScriptsGeneratorCommand { +class MainCommands { static load(program, configFile) { const packagesNames = configFile.workspace.packages.map((p) => p.name); const packagesNamesStr = packagesNames.join(', '); @@ -233,5 +233,5 @@ class ScriptsGeneratorCommand { } } } -exports.ScriptsGeneratorCommand = ScriptsGeneratorCommand; -//# sourceMappingURL=scripts-generator.command.js.map \ No newline at end of file +exports.MainCommands = MainCommands; +//# sourceMappingURL=main.commands.js.map \ No newline at end of file diff --git a/lib/commands/main.commands.js.map b/lib/commands/main.commands.js.map new file mode 100644 index 0000000..b4e46a0 --- /dev/null +++ b/lib/commands/main.commands.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.commands.js","sourceRoot":"","sources":["../../src/commands/main.commands.ts"],"names":[],"mappings":";;;AAAA,wCAAqC;AACrC,+BAA+B;AAC/B,iDAAyC;AAEzC,mDAAmD;AACnD,oCAAoC;AACpC,4CAAgD;AAEhD,oCAAiD;AAEjD,IAAK,iBAOJ;AAPD,WAAK,iBAAiB;IACpB,oCAAe,CAAA;IACf,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;AACrB,CAAC,EAPI,iBAAiB,KAAjB,iBAAiB,QAOrB;AAED,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC/G,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAErD,MAAa,YAAY;IACvB,MAAM,CAAC,IAAI,CAAC,OAAmC,EAAE,UAA4B;QAC3E,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QAK5D,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;aAChC,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,WAAW,CAAC;aACtB,WAAW,CAAC,kBAAkB,EAAE;YAC/B,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,CAAC,WAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAK1D,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;aAChC,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,WAAW,CAAC;aACtB,WAAW,CAAC,kBAAkB,EAAE;YAC/B,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,CAAC,WAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAK1D,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;aAC/B,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,WAAW,CAAC;aACtB,WAAW,CAAC,0BAA0B,EAAE;YACvC,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,sBAAsB,EAAE,cAAc,EAAE,aAAa,CAAC;aAC7D,MAAM,CAAC,qBAAqB,EAAE,YAAY,EAAE,EAAE,CAAC;aAC/C,MAAM,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;aACpE,MAAM,CAAC,YAAY,EAAE,mBAAmB,EAAE,KAAK,CAAC;aAChD,MAAM,CAAC,kCAAkC,EAAE,wCAAwC,EAAE,EAAE,CAAC;aACxF,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC;aACzC,WAAW,CAAC,iBAAiB,EAAE;YAC9B,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAKhF,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;aAC/B,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,WAAW,CAAC;aACtB,MAAM,CAAC,SAAS,EAAE,sBAAsB,EAAE,KAAK,CAAC;aAChD,WAAW,CAAC,iBAAiB,EAAE;YAC9B,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,CAAC,WAAmB,EAAE,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAKhF,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,WAAW,CAAC;aACtB,WAAW,CAAC,mBAAmB,EAAE;YAChC,OAAO,EAAE,uCAAuC,gBAAgB,EAAE;SACnE,CAAC;aACD,MAAM,CAAC,CAAC,WAAmB,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAK3D,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAClC,KAAK,CAAC,GAAG,CAAC;aACV,SAAS,CAAC,gBAAgB,CAAC;aAC3B,MAAM,CAAC,eAAe,EAAE,0BAA0B,EAAE,KAAK,CAAC;aAC1D,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,CAAC;aAC5D,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,OAAO,CAAC;aAC3D,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,EAAE,QAAQ,CAAC;aACpF,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,KAAK,CAAC;aAC1D,WAAW,CAAC,oBAAoB,EAAE;YACjC,MAAM,EAAE,wCAAwC,kBAAkB,EAAE;SACrE,CAAC;aACD,MAAM,CAAC,CAAC,MAAc,EAAE,OAAY,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAMzE,SAAS,QAAQ,CAAC,WAAoB;YACpC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAE5F,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC7B,MAAM,CAAC,GAAG,KAAK,aAAa,IAAI,KAAK,GAAG,CAAC;gBAEzC,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClG,wBAAQ,CAAC,cAAc,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7F,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE;gBAChB,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;oBACtC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,CAAC;aACnB;YAED,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAClG,CAAC;QAMD,SAAS,QAAQ,CAAC,WAAoB;YACpC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC7B,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrG,wBAAQ,CAAC,gCAAgC,KAAK,IAAI,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE;gBAChB,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;oBACtC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,CAAC;aACnB;YAED,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAClG,CAAC;QAOD,SAAS,OAAO,CAAC,WAAoB,EAAE,OAAa;YAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,mBAAmB,GAAG,EAAE,CAAC;YAE7B,IAAI,CAAC,WAAW,EAAE;gBAChB,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEzE,KAAK,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;aAC/B;iBAAM;gBACL,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBACjD,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAE/G,KAAK,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;gBAEpD,IAAI,QAAQ,EAAE;oBACZ,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxF,mBAAmB,GAAG,4BAA4B,OAAO,CAAC,MAAM,IAAI,WAAW,eAC7E,OAAO,CAAC,MACV,IAAI,WAAW,iBAAiB,OAAO,CAAC,MAAM,IAAI,WAAW,mBAC3D,OAAO,CAAC,MACV,IAAI,WAAW,qGACb,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAChE,IAAI,CAAC;iBACN;aACF;YAED,MAAM,GAAG,GAAG,4CAA4C,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,mBAAmB,IAAI,OAAO,EAAE,CAAC;YACxH,wBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAEpC,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACtG,CAAC;QAOD,SAAS,OAAO,CAAC,WAAoB,EAAE,OAAa;YAClD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC7B,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBACvG,wBAAQ,CAAC,QAAQ,aAAa,IAAI,KAAK,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,OAAO,CAAC,KAAK,EAAE;oBACjB,QAAQ,EAAE,CAAC;iBACZ;gBAED,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;oBACtC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAEjD,IAAI,OAAO,CAAC,KAAK,EAAE;oBACjB,QAAQ,CAAC,WAAW,CAAC,CAAC;iBACvB;gBAED,IAAI,CAAC,WAAW,CAAC,CAAC;aACnB;YAED,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAChG,CAAC;QAMD,SAAS,SAAS,CAAC,WAAoB;YACrC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC7B,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3G,wBAAQ,CAAC,QAAQ,aAAa,IAAI,KAAK,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE;gBAChB,aAAa,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;oBACtC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,CAAC;aACnB;YAED,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QACpG,CAAC;QAMD,SAAS,UAAU,CAAC,MAAc,EAAE,OAAa;YAC/C,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,iCAAiC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAEjG,MAAM,SAAS,GAAG,qBAAa,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC;YAC1D,MAAM,eAAe,GAAG,MAAM,KAAK,QAAQ,CAAC;YAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAEhD,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAE9B,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,wBAAwB,EAAE,CAAC;aAC5B;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,eAAe,GAAG,qBAAqB,SAAS,yBAAyB,aAAa,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YAExH,wBAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAEhD,IAAI,aAAa,EAAE;gBACjB,wBAAQ,CAAC,kBAAkB,OAAO,CAAC,GAAG,EAAE,iCAAiC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC9F,wBAAQ,CAAC,8DAA8D,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;aAC5F;iBAAM;gBACL,MAAM,gBAAgB,GAAG,qBAAa,EAAE,CAAC;gBACzC,wBAAQ,CAAC,+CAA+C,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;aACtF;YAED,cAAM,CAAC,IAAI,CACT,iBAAiB,CAAC,OAAO,EACzB,mCAAmC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EACxD,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;QACJ,CAAC;QAOD,SAAS,oBAAoB,CAAC,WAAmB,EAAE,aAAuB;YACxE,IAAI,CAAC,WAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;gBACrC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAC7G,GAAG,4BAAgB,2BAA2B,CAC/C,EAAE,CAAC;gBACJ,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAE1B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;QAMD,SAAS,qBAAqB,CAAC,MAAc;YAC3C,IAAI,CAAC,WAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;gBACjC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,sDAAsD,KAAK,CAAC,IAAI,CACnG,kBAAkB,CACnB,EAAE,CAAC;gBACJ,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAE1B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;QAED,SAAS,wBAAwB;YAC/B,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC5C,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,iDAAiD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9G,cAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAE1B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;QACH,CAAC;IACH,CAAC;CACF;AA/TD,oCA+TC"} \ No newline at end of file diff --git a/lib/constants.d.ts b/lib/constants.d.ts index 6c0ca1a..a362caa 100644 --- a/lib/constants.d.ts +++ b/lib/constants.d.ts @@ -1,5 +1,6 @@ export declare const CMD = "mrepo"; export declare const CONFIG_FILE_NAME: string; +export declare const DIGEST_CONFIG_FILE_NAME: string; export declare const PACKAGE_GENERATOR_PASSED_OPTIONS_ENV_VAR = "PACKAGE_GENERATOR_PASSED_OPTIONS"; export declare enum LERNA_PACKAGES_VERSIONING { independent = "independent", @@ -17,3 +18,12 @@ export declare enum GITHUB_NODE_AUTH_TOKEN_NAME { github = "GITHUB_TOKEN", npm = "NPM_TOKEN" } +export declare enum DIGEST_MODE { + LINK = "ln", + INSTALL = "install" +} +export declare enum DIGEST_MODE_DISPLAY { + 'ln' = "symlink", + 'install' = "install" +} +export declare const DIGEST_MODE_LIST: DIGEST_MODE[]; diff --git a/lib/constants.js b/lib/constants.js index e465451..a9c4e51 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -1,8 +1,9 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.GITHUB_NODE_AUTH_TOKEN_NAME = exports.PACKAGE_REGISTRY_URL = exports.PACKAGE_REGISTRY = exports.LERNA_PACKAGES_VERSIONING = exports.PACKAGE_GENERATOR_PASSED_OPTIONS_ENV_VAR = exports.CONFIG_FILE_NAME = exports.CMD = void 0; +exports.DIGEST_MODE_LIST = exports.DIGEST_MODE_DISPLAY = exports.DIGEST_MODE = exports.GITHUB_NODE_AUTH_TOKEN_NAME = exports.PACKAGE_REGISTRY_URL = exports.PACKAGE_REGISTRY = exports.LERNA_PACKAGES_VERSIONING = exports.PACKAGE_GENERATOR_PASSED_OPTIONS_ENV_VAR = exports.DIGEST_CONFIG_FILE_NAME = exports.CONFIG_FILE_NAME = exports.CMD = void 0; exports.CMD = 'mrepo'; exports.CONFIG_FILE_NAME = `${exports.CMD}.json`; +exports.DIGEST_CONFIG_FILE_NAME = `${exports.CMD}-digest.json`; exports.PACKAGE_GENERATOR_PASSED_OPTIONS_ENV_VAR = 'PACKAGE_GENERATOR_PASSED_OPTIONS'; var LERNA_PACKAGES_VERSIONING; (function (LERNA_PACKAGES_VERSIONING) { @@ -24,4 +25,15 @@ var GITHUB_NODE_AUTH_TOKEN_NAME; GITHUB_NODE_AUTH_TOKEN_NAME["github"] = "GITHUB_TOKEN"; GITHUB_NODE_AUTH_TOKEN_NAME["npm"] = "NPM_TOKEN"; })(GITHUB_NODE_AUTH_TOKEN_NAME = exports.GITHUB_NODE_AUTH_TOKEN_NAME || (exports.GITHUB_NODE_AUTH_TOKEN_NAME = {})); +var DIGEST_MODE; +(function (DIGEST_MODE) { + DIGEST_MODE["LINK"] = "ln"; + DIGEST_MODE["INSTALL"] = "install"; +})(DIGEST_MODE = exports.DIGEST_MODE || (exports.DIGEST_MODE = {})); +var DIGEST_MODE_DISPLAY; +(function (DIGEST_MODE_DISPLAY) { + DIGEST_MODE_DISPLAY["ln"] = "symlink"; + DIGEST_MODE_DISPLAY["install"] = "install"; +})(DIGEST_MODE_DISPLAY = exports.DIGEST_MODE_DISPLAY || (exports.DIGEST_MODE_DISPLAY = {})); +exports.DIGEST_MODE_LIST = Object.values(DIGEST_MODE); //# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/lib/constants.js.map b/lib/constants.js.map index a80629b..d09ba71 100644 --- a/lib/constants.js.map +++ b/lib/constants.js.map @@ -1 +1 @@ -{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,OAAO,CAAC;AACd,QAAA,gBAAgB,GAAG,GAAG,WAAG,OAAO,CAAC;AACjC,QAAA,wCAAwC,GAAG,kCAAkC,CAAC;AAC3F,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,wDAA2B,CAAA;IAC3B,8CAAiB,CAAA;AACnB,CAAC,EAHW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAGpC;AACD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AACD,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qDAA6B,CAAA;IAC7B,kDAA0B,CAAA;AAC5B,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AACD,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,sDAAuB,CAAA;IACvB,gDAAiB,CAAA;AACnB,CAAC,EAHW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAGtC"} \ No newline at end of file +{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,OAAO,CAAC;AACd,QAAA,gBAAgB,GAAG,GAAG,WAAG,OAAO,CAAC;AACjC,QAAA,uBAAuB,GAAG,GAAG,WAAG,cAAc,CAAC;AAC/C,QAAA,wCAAwC,GAAG,kCAAkC,CAAC;AAC3F,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,wDAA2B,CAAA;IAC3B,8CAAiB,CAAA;AACnB,CAAC,EAHW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAGpC;AACD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,qCAAiB,CAAA;IACjB,+BAAW,CAAA;AACb,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AACD,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qDAA6B,CAAA;IAC7B,kDAA0B,CAAA;AAC5B,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AACD,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,sDAAuB,CAAA;IACvB,gDAAiB,CAAA;AACnB,CAAC,EAHW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAGtC;AACD,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AACD,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,qCAAgB,CAAA;IAChB,0CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AACY,QAAA,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/interfaces/index.d.ts b/lib/interfaces/index.d.ts index 1080ac4..38482f9 100644 --- a/lib/interfaces/index.d.ts +++ b/lib/interfaces/index.d.ts @@ -1 +1,2 @@ export * from './mrepo-config-file.interface'; +export * from './mrepo-digest-config-file.interface'; diff --git a/lib/interfaces/index.js b/lib/interfaces/index.js index fe9c86f..4b1b9f7 100644 --- a/lib/interfaces/index.js +++ b/lib/interfaces/index.js @@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require("./mrepo-config-file.interface"), exports); +__exportStar(require("./mrepo-digest-config-file.interface"), exports); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/interfaces/index.js.map b/lib/interfaces/index.js.map index a9f290e..ad58c4a 100644 --- a/lib/interfaces/index.js.map +++ b/lib/interfaces/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;AAC9C,uEAAqD"} \ No newline at end of file diff --git a/lib/interfaces/mrepo-digest-config-file.interface.d.ts b/lib/interfaces/mrepo-digest-config-file.interface.d.ts new file mode 100644 index 0000000..e9b28c7 --- /dev/null +++ b/lib/interfaces/mrepo-digest-config-file.interface.d.ts @@ -0,0 +1,26 @@ +import { DIGEST_MODE } from '../constants'; +export interface IMrepoDigestConfigFilePath { + name: string; + path: string; +} +export interface IMrepoDigestConfigFileMrepoTarget { + name: string; + packages?: string[]; + noDefaultPackages?: boolean; + mode?: DIGEST_MODE; +} +export interface IMrepoDigestConfigFileMrepo { + name: string; + defaultPackages?: string[]; + targets?: IMrepoDigestConfigFileMrepoTarget[]; +} +export interface IMrepoDigestConfigFileTarget { + name: string; + installExec: string; +} +export interface IMrepoDigestConfigFile { + paths: IMrepoDigestConfigFilePath[]; + mrepos: IMrepoDigestConfigFileMrepo[]; + targets: IMrepoDigestConfigFileTarget[]; + mode?: DIGEST_MODE; +} diff --git a/lib/interfaces/mrepo-digest-config-file.interface.js b/lib/interfaces/mrepo-digest-config-file.interface.js new file mode 100644 index 0000000..d5ead55 --- /dev/null +++ b/lib/interfaces/mrepo-digest-config-file.interface.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=mrepo-digest-config-file.interface.js.map \ No newline at end of file diff --git a/lib/interfaces/mrepo-digest-config-file.interface.js.map b/lib/interfaces/mrepo-digest-config-file.interface.js.map new file mode 100644 index 0000000..2886626 --- /dev/null +++ b/lib/interfaces/mrepo-digest-config-file.interface.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mrepo-digest-config-file.interface.js","sourceRoot":"","sources":["../../src/interfaces/mrepo-digest-config-file.interface.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/lib/package.json b/lib/package.json index f5942b8..8e9519d 100644 --- a/lib/package.json +++ b/lib/package.json @@ -46,10 +46,12 @@ "commander": "7.1.0", "current-git-branch": "1.1.0", "dashify": "2.0.0", + "find-config": "1.0.0", "json": "10.0.0", "node-emoji": "1.10.0", "npmlog": "4.1.2", "rimraf": "3.0.2", - "sao": "1.7.1" + "sao": "1.7.1", + "symlink-dir": "5.0.1" } } diff --git a/lib/scripts-generator/scripts-generator.command.js.map b/lib/scripts-generator/scripts-generator.command.js.map deleted file mode 100644 index 8d4bdfa..0000000 --- a/lib/scripts-generator/scripts-generator.command.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"scripts-generator.command.js","sourceRoot":"","sources":["../../src/scripts-generator/scripts-generator.command.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/utils/config-file.loader.d.ts b/lib/utils/config-file.loader.d.ts index 4da63b0..7950f04 100644 --- a/lib/utils/config-file.loader.d.ts +++ b/lib/utils/config-file.loader.d.ts @@ -1,5 +1,5 @@ import { IMrepoConfigFile } from '../interfaces'; -export declare function loadConfigFile(): IMrepoConfigFile; +export declare function loadConfigFile(path?: string): IMrepoConfigFile; export declare function loadLernaFile(): any; export declare function loadRootPackageJson(): any; export declare function validateConfigFile(configFile: IMrepoConfigFile): void; diff --git a/lib/utils/config-file.loader.js b/lib/utils/config-file.loader.js index cd01a91..4731929 100644 --- a/lib/utils/config-file.loader.js +++ b/lib/utils/config-file.loader.js @@ -8,8 +8,8 @@ const emoji = require("node-emoji"); const path_1 = require("path"); const constants_1 = require("../constants"); const utils_1 = require("../utils"); -function loadConfigFile() { - const configFilePath = path_1.join(process.cwd(), `./${constants_1.CONFIG_FILE_NAME}`); +function loadConfigFile(path) { + const configFilePath = path_1.join(path ? path : process.cwd(), `./${constants_1.CONFIG_FILE_NAME}`); return util_1.safeRequire(configFilePath); } exports.loadConfigFile = loadConfigFile; diff --git a/lib/utils/config-file.loader.js.map b/lib/utils/config-file.loader.js.map index 6f1ac2e..12d58be 100644 --- a/lib/utils/config-file.loader.js.map +++ b/lib/utils/config-file.loader.js.map @@ -1 +1 @@ -{"version":3,"file":"config-file.loader.js","sourceRoot":"","sources":["../../src/utils/config-file.loader.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config-file.loader.js","sourceRoot":"","sources":["../../src/utils/config-file.loader.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/utils/digest-config-file.loader.d.ts b/lib/utils/digest-config-file.loader.d.ts new file mode 100644 index 0000000..408636f --- /dev/null +++ b/lib/utils/digest-config-file.loader.d.ts @@ -0,0 +1,2 @@ +import { IMrepoDigestConfigFile } from '../interfaces'; +export declare function loadDigestConfigFile(configFileName?: string): IMrepoDigestConfigFile; diff --git a/lib/utils/digest-config-file.loader.js b/lib/utils/digest-config-file.loader.js new file mode 100644 index 0000000..032b6b0 --- /dev/null +++ b/lib/utils/digest-config-file.loader.js @@ -0,0 +1,112 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.loadDigestConfigFile = void 0; +const util_1 = require("@nestled/util"); +const ajv_1 = require("ajv"); +const color = require("chalk"); +const findConfig = require("find-config"); +const emoji = require("node-emoji"); +const constants_1 = require("../constants"); +const utils_1 = require("../utils"); +function loadDigestConfigFile(configFileName = constants_1.DIGEST_CONFIG_FILE_NAME) { + const path = findConfig(configFileName); + if (!path) { + const msg = `${emoji.get(':flushed:')} ${configFileName} hasn't been found`; + utils_1.logger.error('cli', msg); + process.exit(1); + } + const loadedConfigFile = util_1.safeRequire(path); + validateDigestConfigFile(loadedConfigFile, configFileName); + return loadedConfigFile; +} +exports.loadDigestConfigFile = loadDigestConfigFile; +function validateDigestConfigFile(loadedConfigFile, configFileName) { + const ajv = new ajv_1.default(); + const schema = { + type: 'object', + properties: { + mode: { + type: 'string', + pattern: constants_1.DIGEST_MODE_LIST.join('|'), + }, + paths: { + type: 'array', + minItems: 2, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + path: { type: 'string' }, + }, + additionalProperties: false, + required: ['name', 'path'], + }, + }, + mrepos: { + type: 'array', + minItems: 1, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + targets: { + type: 'array', + minItems: 0, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + packages: { + type: 'array', + minItems: 0, + items: { type: 'string' }, + }, + noDefaultPackages: { type: 'boolean' }, + mode: { + type: 'string', + pattern: constants_1.DIGEST_MODE_LIST.join('|'), + }, + }, + additionalProperties: false, + required: ['name'], + }, + }, + defaultPackages: { + type: 'array', + minItems: 0, + items: { type: 'string' }, + }, + }, + additionalProperties: false, + required: ['name'], + }, + }, + targets: { + type: 'array', + minItems: 1, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + installExec: { type: 'string' }, + }, + additionalProperties: false, + required: ['name', 'installExec'], + }, + }, + }, + additionalProperties: false, + required: ['paths', 'mrepos', 'targets'], + }; + const validate = ajv.compile(schema); + const isValid = validate(loadedConfigFile); + if (!isValid) { + const { dataPath, message } = validate.errors[0]; + const msg1 = `${emoji.get(':flushed:')} Invalid ${configFileName}`; + const msg2 = `${color.bold.red(dataPath)} -> ${color.bold.red(message)}`; + utils_1.logger.error('cli', msg1); + utils_1.logger.error('cli', msg2); + process.exit(1); + } +} +//# sourceMappingURL=digest-config-file.loader.js.map \ No newline at end of file diff --git a/lib/utils/digest-config-file.loader.js.map b/lib/utils/digest-config-file.loader.js.map new file mode 100644 index 0000000..200d446 --- /dev/null +++ b/lib/utils/digest-config-file.loader.js.map @@ -0,0 +1 @@ +{"version":3,"file":"digest-config-file.loader.js","sourceRoot":"","sources":["../../src/utils/digest-config-file.loader.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/utils/index.d.ts b/lib/utils/index.d.ts index b2064e2..a9dad32 100644 --- a/lib/utils/index.d.ts +++ b/lib/utils/index.d.ts @@ -1,4 +1,5 @@ export * from './config-file.loader'; export * from './create-packages-npmrc.util'; +export * from './digest-config-file.loader'; export * from './logger'; export * from './package-json-version.loader'; diff --git a/lib/utils/index.js b/lib/utils/index.js index c7475c3..d48e23c 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -12,6 +12,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require("./config-file.loader"), exports); __exportStar(require("./create-packages-npmrc.util"), exports); +__exportStar(require("./digest-config-file.loader"), exports); __exportStar(require("./logger"), exports); __exportStar(require("./package-json-version.loader"), exports); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/utils/index.js.map b/lib/utils/index.js.map index f17a32f..2e7a56e 100644 --- a/lib/utils/index.js.map +++ b/lib/utils/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,+DAA6C;AAC7C,2CAAyB;AACzB,gEAA8C"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,+DAA6C;AAC7C,8DAA4C;AAC5C,2CAAyB;AACzB,gEAA8C"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3f42c78..227924f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,52 +1,51 @@ { - "name": "monorepo-utils", + "name": "mrepo", "version": "0.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" } }, "@babel/compat-data": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", - "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", "dev": true }, "@babel/core": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", - "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.10", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.10", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", + "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-compilation-targets": "^7.15.0", + "@babel/helper-module-transforms": "^7.15.0", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.15.0", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -67,25 +66,25 @@ } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.15.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", "semver": "^6.3.0" }, "dependencies": { @@ -98,134 +97,143 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.15.0" } }, "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" } }, "@babel/helper-module-transforms": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", - "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" } }, "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.8" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true }, "@babel/helpers": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", - "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", + "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -283,9 +291,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", + "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -388,46 +396,46 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -442,13 +450,12 @@ } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" } }, @@ -469,22 +476,22 @@ } }, "@commitlint/execute-rule": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.0.1.tgz", - "integrity": "sha512-JzyweYfZlFLtXpgP+btzSY3YAkGPg61TqUSYQqBr4+5IaVf1FruMm5v4D5eLu9dAJuNKUfHbM3AEfuEPiZ79pg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.0.0.tgz", + "integrity": "sha512-lBz2bJhNAgkkU/rFMAw3XBNujbxhxlaFHY3lfKB/MxpAa+pIfmWB3ig9i1VKe0wCvujk02O0WiMleNaRn2KJqw==", "dev": true, "optional": true }, "@commitlint/load": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.0.1.tgz", - "integrity": "sha512-dX8KdCWn7w0bTkkk3zKQpe9X8vsTRa5EM+1ffF313wCX9b6tGa9vujhEHCkSzKAbbE2tFV64CHZygE7rtlHdIA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.1.0.tgz", + "integrity": "sha512-zlZbjJCWnWmBOSwTXis8H7I6pYk6JbDwOCuARA6B9Y/qt2PD+NCo0E/7EuaaFoxjHl+o56QR5QttuMBrf+BJzg==", "dev": true, "optional": true, "requires": { - "@commitlint/execute-rule": "^12.0.1", - "@commitlint/resolve-extends": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/execute-rule": "^13.0.0", + "@commitlint/resolve-extends": "^13.0.0", + "@commitlint/types": "^13.1.0", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", @@ -501,9 +508,9 @@ } }, "@commitlint/resolve-extends": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.0.1.tgz", - "integrity": "sha512-Mvg0GDi/68Cqw893ha8uhxE8myHfPmiSSSi7d1x4VJNR4hoS37lBdX89kyx4i9NPmLfviY2cUJKTyK8ZrFznZw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.0.0.tgz", + "integrity": "sha512-1SyaE+UOsYTkQlTPUOoj4NwxQhGFtYildVS/d0TJuK8a9uAJLw7bhCLH2PEeH5cC2D1do4Eqhx/3bLDrSLH3hg==", "dev": true, "optional": true, "requires": { @@ -523,15 +530,21 @@ } }, "@commitlint/types": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.0.1.tgz", - "integrity": "sha512-FsNDMV0W7D19/ZbR412klpqAilXASx75Neqh7jPtK278IEwdukOg3vth1r5kTm+BjDScM7wMUEOwIW3NNfAtwg==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.1.0.tgz", + "integrity": "sha512-zcVjuT+OfKt8h91vhBxt05RMcTGEx6DM7Q9QZeuMbXFk6xgbsSEDMMapbJPA1bCZ81fa/1OQBijSYPrKvtt06g==", "dev": true, "optional": true, "requires": { "chalk": "^4.0.0" } }, + "@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -673,12 +686,12 @@ }, "dependencies": { "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" } }, "ansi-regex": { @@ -712,13 +725,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -746,9 +759,9 @@ } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } @@ -929,13 +942,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -1056,19 +1069,19 @@ "integrity": "sha512-LFTGaNTgcx9MqOyPy0OeIksff6xxqH1xtQOCQrWjKuq/r69AgZ+9/UBdavb5VV87D83FvsS4jZ+UHjASAsjEnw==" }, "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "dependencies": { "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true } } @@ -1079,19 +1092,19 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -1106,10 +1119,16 @@ "@sinonjs/commons": "^1.7.0" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", + "version": "7.1.15", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", + "integrity": "sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1120,18 +1139,18 @@ } }, "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", + "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -1139,18 +1158,24 @@ } }, "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, + "@types/find-config": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/find-config/-/find-config-1.0.1.tgz", + "integrity": "sha512-H4DFIQMwxCKRgVWMSqALg6aowTOgZi5D4pSPBBuOQFJLRwfNZaByhC9+s870CZgTRJoyVg5J+iesdF5uvnJ0mA==", + "dev": true + }, "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", "dev": true, "requires": { "@types/minimatch": "*", @@ -1182,9 +1207,9 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" @@ -1207,15 +1232,15 @@ "dev": true }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", "dev": true }, "@types/node": { @@ -1225,9 +1250,9 @@ "dev": true }, "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, "@types/parse-json": { @@ -1238,32 +1263,37 @@ "optional": true }, "@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", "dev": true }, "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, + "@zkochan/rimraf": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@zkochan/rimraf/-/rimraf-2.1.1.tgz", + "integrity": "sha512-TgiZpFi4XSvS8wY2/JzoJQYqgpOeBfVMPLC93cRXjbqYSXr1PGyQagS1Wyztuq1uMA1Cqd+EYLa5HESrJwH0Kw==" + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -1281,9 +1311,9 @@ "dev": true }, "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true }, "acorn-globals": { @@ -1316,6 +1346,32 @@ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -1393,9 +1449,9 @@ } }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -1446,12 +1502,6 @@ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -1489,21 +1539,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -1520,18 +1555,6 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "babel-jest": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", @@ -1617,9 +1640,9 @@ } }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base": { "version": "0.11.2", @@ -1676,13 +1699,12 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, + "better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", "requires": { - "tweetnacl": "^0.14.3" + "is-windows": "^1.0.0" } }, "binary-extensions": { @@ -1829,16 +1851,16 @@ "dev": true }, "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.16.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", + "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", + "caniuse-lite": "^1.0.30001251", + "colorette": "^1.3.0", + "electron-to-chromium": "^1.3.811", "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "node-releases": "^1.1.75" } }, "bs-logger": { @@ -1893,15 +1915,15 @@ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "cac": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.2.tgz", - "integrity": "sha512-w0bH1IF9rEjdi0a6lTtlXYT+vBZEJL9oytaXXRdsD68MH6+SrZGOGsu7s2saHQvYXqwo/wBdkW75tt8wFpj+mw==" + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.3.tgz", + "integrity": "sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==" }, "cache-base": { "version": "1.0.1", @@ -1961,9 +1983,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001204", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", - "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==", + "version": "1.0.30001251", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", + "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", "dev": true }, "capture-exit": { @@ -1980,12 +2002,6 @@ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "caw": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", @@ -2179,9 +2195,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", + "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "dev": true }, "combined-stream": { @@ -2194,12 +2210,12 @@ } }, "command-line-args": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", - "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==", "dev": true, "requires": { - "array-back": "^3.0.1", + "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" @@ -2380,9 +2396,9 @@ } }, "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -2467,9 +2483,9 @@ } }, "conventional-changelog-conventionalcommits": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", - "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz", + "integrity": "sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A==", "dev": true, "requires": { "compare-func": "^2.0.0", @@ -2478,16 +2494,16 @@ } }, "conventional-changelog-core": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz", - "integrity": "sha512-7pDpRUiobQDNkwHyJG7k9f6maPo9tfPzkSWbRq97GGiZqisElhnvUZSvyQH20ogfOjntB5aadvv6NNcKL1sReg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.3.tgz", + "integrity": "sha512-MwnZjIoMRL3jtPH5GywVNqetGILC7g6RQFvdb8LRU/fA/338JbeWAku3PZ8yQ+mtVRViiISqJlb0sOz0htBZig==", "dev": true, "requires": { "add-stream": "^1.0.0", - "conventional-changelog-writer": "^4.0.18", + "conventional-changelog-writer": "^5.0.0", "conventional-commits-parser": "^3.2.0", "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", + "get-pkg-repo": "^4.0.0", "git-raw-commits": "^2.0.8", "git-remote-origin-url": "^2.0.0", "git-semver-tags": "^4.1.1", @@ -2496,7 +2512,6 @@ "q": "^1.5.1", "read-pkg": "^3.0.0", "read-pkg-up": "^3.0.0", - "shelljs": "^0.8.3", "through2": "^4.0.0" } }, @@ -2553,12 +2568,11 @@ "dev": true }, "conventional-changelog-writer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz", - "integrity": "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.0.tgz", + "integrity": "sha512-HnDh9QHLNWfL6E1uHz6krZEQOgm8hN7z/m7tT16xwd802fwgMN0Wqd7AQYVkhpsjDUx/99oo+nGgvKF657XP5g==", "dev": true, "requires": { - "compare-func": "^2.0.0", "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", "handlebars": "^4.7.6", @@ -2610,9 +2624,9 @@ } }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -2723,9 +2737,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "locate-path": { @@ -2864,13 +2878,11 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", + "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -2911,41 +2923,6 @@ "babel-plugin-add-module-exports": "^0.2.1", "execa": "^0.6.1", "is-git-repository": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz", - "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" } }, "cz-conventional-changelog": { @@ -3021,15 +2998,6 @@ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "dashify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz", @@ -3085,9 +3053,9 @@ } }, "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { @@ -3382,25 +3350,15 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ejs": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.813", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.813.tgz", + "integrity": "sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw==", "dev": true }, "emittery": { @@ -3489,15 +3447,15 @@ "dev": true }, "exec-sh": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.5.tgz", - "integrity": "sha512-0hzpaUazv4mEccxdn3TXC+HWNeVXNKMCJRK6E7Xyg+LwGAYI3yFag6jTkd4injV+kChYDQS1ftqDhnDVWNhU8A==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz", + "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -3506,18 +3464,6 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } } }, "exit": { @@ -3581,12 +3527,6 @@ "jest-regex-util": "^26.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -3675,12 +3615,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3712,9 +3646,9 @@ "dev": true }, "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", + "integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -3786,6 +3720,14 @@ } } }, + "find-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-config/-/find-config-1.0.0.tgz", + "integrity": "sha1-6vorm8B/qckOmgw++c7PHMgA9TA=", + "requires": { + "user-home": "^2.0.0" + } + }, "find-node-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz", @@ -3836,20 +3778,14 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -3928,81 +3864,59 @@ "dev": true }, "get-pkg-repo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.2.tgz", + "integrity": "sha512-/FjamZL9cBYllEbReZkxF2IMh80d8TJoC4e3bmLNif8ibHw95aj0N/tzqK0kZz9eU/3w3dL6lF4fnnX/sDdW3A==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "meow": "^7.0.0", "through2": "^2.0.0" }, "dependencies": { "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "repeating": "^2.0.0" + "p-locate": "^4.1.0" } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", + "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" } }, "normalize-package-data": { @@ -4015,72 +3929,83 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + } } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "p-try": "^2.0.0" } }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "p-limit": "^2.2.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } } }, "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, "through2": { @@ -4093,11 +4018,21 @@ "xtend": "~4.0.1" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -4109,12 +4044,6 @@ "npm-conf": "^1.1.0" } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -4125,15 +4054,6 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "git-clone": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/git-clone/-/git-clone-0.1.0.tgz", @@ -4198,9 +4118,9 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4315,9 +4235,9 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "growly": { "version": "1.3.0", @@ -4339,46 +4259,10 @@ "wordwrap": "^1.0.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } @@ -4485,9 +4369,9 @@ } }, "hosted-git-info": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.1.tgz", - "integrity": "sha512-eT7NrxAsppPRQEBSwKSosReE+v8OzABwEScQYk5d4uxaEPlzxTIku7LINXtBGalthkLhJnq5lBI89PfK43zAKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -4525,15 +4409,59 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "human-signals": { @@ -4727,12 +4655,6 @@ } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -4779,9 +4701,9 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -4823,9 +4745,9 @@ } }, "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "optional": true }, @@ -4839,12 +4761,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -4866,32 +4782,6 @@ "requires": { "execa": "^0.6.1", "path-is-absolute": "^1.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz", - "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - } } }, "is-glob": { @@ -4972,9 +4862,9 @@ } }, "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "is-promise": { @@ -5054,12 +4944,6 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", @@ -5126,9 +5010,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -5265,9 +5149,9 @@ } }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "mimic-fn": { @@ -5377,13 +5261,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "to-regex-range": { @@ -5513,13 +5397,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "to-regex-range": { @@ -5623,13 +5507,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -5698,9 +5582,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "locate-path": { @@ -5925,9 +5809,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -5995,13 +5879,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "to-regex-range": { @@ -6053,18 +5937,18 @@ }, "dependencies": { "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } @@ -6101,20 +5985,14 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "jsdom": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", - "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, "requires": { "abab": "^2.0.5", - "acorn": "^8.0.5", + "acorn": "^8.2.4", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -6122,12 +6000,13 @@ "decimal.js": "^10.2.1", "domexception": "^2.0.1", "escodegen": "^2.0.0", + "form-data": "^3.0.0", "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", + "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", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", "saxes": "^5.0.1", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", @@ -6136,8 +6015,8 @@ "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.4.4", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", "xml-name-validator": "^3.0.0" } }, @@ -6164,12 +6043,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -6204,18 +6077,6 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "jstransformer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", @@ -6281,41 +6142,32 @@ "dev": true }, "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } }, @@ -6351,12 +6203,6 @@ "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", @@ -6432,16 +6278,6 @@ "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", "dev": true }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -6494,9 +6330,9 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-obj": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.0.tgz", - "integrity": "sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", + "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", "dev": true }, "map-visit": { @@ -6537,9 +6373,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "locate-path": { @@ -6672,18 +6508,18 @@ } }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", "dev": true }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dev": true, "requires": { - "mime-db": "1.46.0" + "mime-db": "1.49.0" } }, "mimic-fn": { @@ -6851,9 +6687,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "requires": { @@ -6887,19 +6723,19 @@ } }, "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.1.75", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", + "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", "dev": true }, "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", + "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" }, @@ -6914,9 +6750,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -6975,12 +6811,6 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -7256,12 +7086,6 @@ "callsites": "^3.0.0" } }, - "parse-github-repo-url": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", - "dev": true - }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -7322,9 +7146,9 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { @@ -7338,16 +7162,10 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "pify": { @@ -7495,9 +7313,9 @@ } }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -7541,12 +7359,6 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7571,9 +7383,9 @@ } }, "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "read-pkg": { @@ -7588,23 +7400,11 @@ }, "dependencies": { "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -7617,16 +7417,6 @@ "validate-npm-package-license": "^3.0.1" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -7635,12 +7425,6 @@ "requires": { "pify": "^3.0.0" } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, @@ -7668,15 +7452,6 @@ "util-deprecate": "~1.0.1" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -7719,97 +7494,24 @@ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, + "rename-overwrite": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rename-overwrite/-/rename-overwrite-4.0.0.tgz", + "integrity": "sha512-GZxPjarpxu2DGD6xHE8L4GdJhWz2+2i2x6N1I7VEof2p5M/x/LDNxNXA547k8xOpPmHnijXBE1ofmj7NDGP20g==", + "requires": { + "@zkochan/rimraf": "^2.1.0" + } + }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7933,9 +7635,9 @@ } }, "rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" } @@ -7985,6 +7687,19 @@ "normalize-path": "^2.1.1" } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -8079,6 +7794,18 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8170,17 +7897,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -8369,9 +8085,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "split": { @@ -8419,23 +8135,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", @@ -8472,12 +8171,6 @@ } } }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -8593,9 +8286,9 @@ } }, "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -8608,6 +8301,15 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "symlink-dir": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/symlink-dir/-/symlink-dir-5.0.1.tgz", + "integrity": "sha512-MeXygPBopo8AmyObuCJIpXKT+mw54d2Kp6SBuxq0uXZGDkHwHDQExpSg5+TK8BA5kCGyktawu5DJG0QWYO6acw==", + "requires": { + "better-path-resolve": "^1.0.0", + "rename-overwrite": "^4.0.0" + } + }, "tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", @@ -8644,6 +8346,22 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "^0.7.0" + }, + "dependencies": { + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + } + } } }, "terminal-link": { @@ -8657,18 +8375,18 @@ }, "dependencies": { "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } @@ -8803,18 +8521,18 @@ } }, "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "requires": { "punycode": "^2.1.1" } }, "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, "trim-off-newlines": { @@ -8865,9 +8583,9 @@ "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -8894,12 +8612,6 @@ "safe-buffer": "^5.0.1" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -8943,9 +8655,9 @@ "dev": true }, "uglify-js": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", - "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz", + "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==", "dev": true, "optional": true }, @@ -9137,9 +8849,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -9165,17 +8877,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "version-bump-prompt": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/version-bump-prompt/-/version-bump-prompt-6.1.0.tgz", @@ -9202,18 +8903,18 @@ } }, "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" } }, "ansi-regex": { @@ -9262,17 +8963,16 @@ } }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "figures": { @@ -9303,9 +9003,9 @@ } }, "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -9375,13 +9075,13 @@ } }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "mimic-fn": { @@ -9416,9 +9116,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9460,9 +9160,9 @@ } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "yallist": { @@ -9530,13 +9230,13 @@ "dev": true }, "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", + "lodash": "^4.7.0", + "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" } }, @@ -9665,9 +9365,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "dev": true }, "xdg-basedir": { @@ -9693,9 +9393,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -9829,9 +9529,9 @@ } }, "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yarn-global": { diff --git a/package.json b/package.json index 2227ea5..f37a9e0 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "releaseTag": "latest" }, "devDependencies": { + "@types/find-config": "1.0.1", "@types/jest": "26.0.20", "@types/jsesc": "2.5.1", "@types/node": "14.14.33", @@ -58,10 +59,12 @@ "commander": "7.1.0", "current-git-branch": "1.1.0", "dashify": "2.0.0", + "find-config": "1.0.0", "json": "10.0.0", "node-emoji": "1.10.0", "npmlog": "4.1.2", "rimraf": "3.0.2", - "sao": "1.7.1" + "sao": "1.7.1", + "symlink-dir": "5.0.1" } } diff --git a/src/bin/mrepo.ts b/src/bin/mrepo.ts index 2e3f819..3fce26b 100644 --- a/src/bin/mrepo.ts +++ b/src/bin/mrepo.ts @@ -3,7 +3,8 @@ import { Command } from 'commander'; import { CONFIG_FILE_NAME } from '../constants'; import { MonorepoGeneratorCommand } from '../monorepo-generator/monorepo-generator.command'; -import { ScriptsGeneratorCommand } from '../scripts-generator/scripts-generator.command'; +import { DigestCommand } from '../commands/digest.command'; +import { MainCommands } from '../commands/main.commands'; import { PackageGeneratorCommand } from '../package-generator/package-generator.command'; import { loadConfigFile, loadPackageJsonVersion, logger, validateConfigFile } from '../utils'; @@ -17,11 +18,13 @@ if (configFile) { logger.notice('cli', `validating ${CONFIG_FILE_NAME}`); validateConfigFile(configFile); - ScriptsGeneratorCommand.load(program, configFile); + MainCommands.load(program, configFile); PackageGeneratorCommand.load(program, configFile); } else { MonorepoGeneratorCommand.load(program); } +DigestCommand.load(program); + program.version(loadPackageJsonVersion()); program.parse(process.argv); diff --git a/src/commands/digest.command.ts b/src/commands/digest.command.ts new file mode 100644 index 0000000..71813f6 --- /dev/null +++ b/src/commands/digest.command.ts @@ -0,0 +1,283 @@ +import { isArrayFull, isIn } from '@nestled/util'; +import * as color from 'chalk'; +import { execSync } from 'child_process'; +import { CommanderStatic } from 'commander'; +import * as emoji from 'node-emoji'; +import { join } from 'path'; +import symlinkDir = require('symlink-dir'); +import { + CONFIG_FILE_NAME, + DIGEST_CONFIG_FILE_NAME, + DIGEST_MODE, + DIGEST_MODE_DISPLAY, + DIGEST_MODE_LIST, +} from '../constants'; +import { + IMrepoConfigFile, + IMrepoDigestConfigFile, + IMrepoDigestConfigFilePath, + IMrepoDigestConfigFileMrepo, + IMrepoDigestConfigFileMrepoTarget, + IMrepoDigestConfigFileTarget, +} from '../interfaces'; +import { loadConfigFile, loadDigestConfigFile, logger } from '../utils'; + +enum AvailableCommands { + DIGEST = 'digest', +} + +interface DigestCommandOptions { + config: string; + mode: DIGEST_MODE; + packages?: string; + installVersion?: string; + quiet?: boolean; +} + +export class DigestCommand { + static load(program: CommanderStatic['program']) { + /** + * Digest packages + */ + program + .command(AvailableCommands.DIGEST) + .alias('d') + .arguments('[from]') + .arguments('[to]') + .option('-c, --config ', 'Config file name or path (optional)', DIGEST_CONFIG_FILE_NAME) + .option('-m, --mode ', `Digest mode. One of ${DIGEST_MODE_LIST.join(', ')}. (optional)`) + .option('-p, --packages ', 'Mrepo packages to digest, comma-separated (optional)') + .option('--installVersion ', 'Install packages with version') + .option('--quiet', 'Run quietly', false) + .description('Digest packages from mrepos to target repositories', { + from: 'Mrepo names from the digest config file, comma-separated (optional)', + to: 'Target names from the digest config file, comma-separated (optional)', + }) + .action(async (from: string, to: string, options: DigestCommandOptions) => this.runDigest(from, to, options)); + } + + static async runDigest(from: string, to: string, options: DigestCommandOptions) { + const config = loadDigestConfigFile(options.config); + const mrepos = this.getMreposFromConfig(from, config, options); + + for (const mrepo of mrepos) { + const mrepoPath = this.getPathFromConfig(mrepo.name, config, options); + const mrepoConfig = this.loadMrepoConfigFile(mrepo.name, mrepoPath.path); + const mrepoTargets = this.getMrepoTargetFromConfig(mrepo, to); + + if (isArrayFull(mrepoTargets)) { + for (const mrepoTarget of mrepoTargets) { + const target = this.getTargetFromConfig(mrepoTarget.name, config, options); + const targetPath = this.getPathFromConfig(target.name, config, options); + const digestPackages = this.getTargetDigestPackages(mrepo, mrepoTarget, mrepoConfig, options); + + if (isArrayFull(digestPackages)) { + const mode = this.getMode(config, mrepoTarget, options); + switch (mode) { + case DIGEST_MODE.INSTALL: + this.runInstall(mrepoConfig, targetPath, target, digestPackages, options); + break; + + case DIGEST_MODE.LINK: + await this.runSymlink(mrepoConfig, mrepoPath, targetPath, digestPackages); + break; + + default: + break; + } + + logger.info(AvailableCommands.DIGEST, `${DIGEST_MODE_DISPLAY[mode]}: ${mrepo.name} -> ${target.name}`); + } else { + logger.info( + AvailableCommands.DIGEST, + `Mrepo ${mrepo.name} has no selected allowed packages to digest for ${target.name}`, + ); + } + } + } else { + logger.info(AvailableCommands.DIGEST, `Mrepo ${mrepo.name} has no targets to digest`); + } + } + } + + static removeFromNodeModules( + mrepoConfig: IMrepoConfigFile, + targetPath: IMrepoDigestConfigFilePath, + digestPackages: string[], + ): void { + const packagesStr = digestPackages + .map((p) => join(targetPath.path, 'node_modules', `@${mrepoConfig.workspace.scope}`, p)) + .join(' '); + + execSync(`npx rimraf ${packagesStr}`, { + stdio: 'ignore', + }); + } + + static runInstall( + mrepoConfig: IMrepoConfigFile, + targetPath: IMrepoDigestConfigFilePath, + target: IMrepoDigestConfigFileTarget, + digestPackages: string[], + options: DigestCommandOptions, + ): void { + this.removeFromNodeModules(mrepoConfig, targetPath, digestPackages); + + const packagesStr = digestPackages + .map((p) => `@${mrepoConfig.workspace.scope}/${p}${options.installVersion ? '@' + options.installVersion : ''}`) + .join(' '); + + const cmd = `cd ${targetPath.path} && ${target.installExec} ${packagesStr}`; + + if (!options.quiet) { + logger.info(AvailableCommands.DIGEST, cmd); + } + + execSync(cmd, { + stdio: options.quiet ? 'ignore' : 'inherit', + }); + } + + static async runSymlink( + mrepoConfig: IMrepoConfigFile, + mrepoPath: IMrepoDigestConfigFilePath, + targetPath: IMrepoDigestConfigFilePath, + digestPackages: string[], + ): Promise { + this.removeFromNodeModules(mrepoConfig, targetPath, digestPackages); + + for (const digestPackage of digestPackages) { + const sourcePath = join(mrepoPath.path, mrepoConfig.workspace.name, digestPackage); + const destPath = join(targetPath.path, 'node_modules', `@${mrepoConfig.workspace.scope}`, digestPackage); + + await symlinkDir(sourcePath, destPath); + } + } + + static getMode( + config: IMrepoDigestConfigFile, + mrepoTarget: IMrepoDigestConfigFileMrepoTarget, + options: DigestCommandOptions, + ): DIGEST_MODE { + if (options.mode) { + if (!isIn(options.mode, DIGEST_MODE_LIST)) { + const msg = `${emoji.get(':flushed:')} Invalid digest mode. One of ${DIGEST_MODE_LIST.join(', ')} expected`; + this.exit(msg); + } else { + return options.mode; + } + } + + return mrepoTarget.mode ? mrepoTarget.mode : config.mode ? config.mode : DIGEST_MODE.INSTALL; + } + + static getPathFromConfig( + name: string, + config: IMrepoDigestConfigFile, + options: DigestCommandOptions, + ): IMrepoDigestConfigFilePath { + const found = config.paths.find((o) => o.name === name); + + if (!found?.path) { + const msg = `${emoji.get(':flushed:')} Can't find path for ${name} in ${options.config}`; + this.exit(msg); + } + + return found; + } + + static getMreposFromConfig( + from: string, + config: IMrepoDigestConfigFile, + options: DigestCommandOptions, + ): IMrepoDigestConfigFileMrepo[] { + return from ? from.split(',').map((name) => this.getMrepoFromConfig(name, config, options)) : config.mrepos; + } + + static getMrepoFromConfig( + name: string, + config: IMrepoDigestConfigFile, + options: DigestCommandOptions, + ): IMrepoDigestConfigFileMrepo { + const found = config.mrepos.find((o) => o.name === name); + + if (!found) { + const msg = `${emoji.get(':flushed:')} Can't find mrepo ${name} in ${options.config}`; + this.exit(msg); + } + + return found; + } + + static getMrepoTargetFromConfig(mrepo: IMrepoDigestConfigFileMrepo, to: string): IMrepoDigestConfigFileMrepoTarget[] { + if (!isArrayFull(mrepo.targets)) { + return []; + } + + const toTargets = !to ? [] : to.split(','); + + if (!isArrayFull(toTargets)) { + return mrepo.targets; + } + + return mrepo.targets.filter((mt) => isIn(mt.name, toTargets)); + } + + static getTargetFromConfig( + name: string, + config: IMrepoDigestConfigFile, + options: DigestCommandOptions, + ): IMrepoDigestConfigFileTarget { + const found = config.targets.find((o) => o.name === name); + + if (!found) { + const msg = `${emoji.get(':flushed:')} Can't find target ${name} in ${options.config}`; + this.exit(msg); + } + + return found; + } + + static loadMrepoConfigFile(name: string, path: string): IMrepoConfigFile { + const mrepoConfig = loadConfigFile(path); + + if (!mrepoConfig) { + const msg = `${emoji.get(':flushed:')} Can't find ${CONFIG_FILE_NAME} for ${name}`; + this.exit(msg); + } + + return mrepoConfig; + } + + static getTargetDigestPackages( + mrepo: IMrepoDigestConfigFileMrepo, + mrepoTarget: IMrepoDigestConfigFileMrepoTarget, + mrepoConfig: IMrepoConfigFile, + options: DigestCommandOptions, + ): string[] { + const optionsPackages = options.packages ? options.packages.split(',') : []; + let allPackages: string[]; + + if (isArrayFull(optionsPackages)) { + allPackages = optionsPackages; + } else { + const defaultPackages = isArrayFull(mrepo.defaultPackages) ? mrepo.defaultPackages : []; + const mrepoTargetPackages = isArrayFull(mrepoTarget.packages) ? mrepoTarget.packages : []; + const combinedPackages = [...mrepoTargetPackages, ...(mrepoTarget.noDefaultPackages ? [] : defaultPackages)]; + allPackages = combinedPackages; + } + + allPackages = allPackages.filter((v, i, a) => a.indexOf(v) === i); + + return mrepoConfig.workspace.packages.filter((p) => isIn(p.name, allPackages)).map((p) => p.name); + } + + static exit(msg: string) { + logger.error(AvailableCommands.DIGEST, msg); + process.exit(1); + } + + static uniqArr(arr: any[]): any[] { + return arr.filter((v, i, a) => a.indexOf(v) === i); + } +} diff --git a/src/scripts-generator/scripts-generator.command.ts b/src/commands/main.commands.ts similarity index 99% rename from src/scripts-generator/scripts-generator.command.ts rename to src/commands/main.commands.ts index bbccebc..985b788 100644 --- a/src/scripts-generator/scripts-generator.command.ts +++ b/src/commands/main.commands.ts @@ -20,7 +20,7 @@ enum AvailableCommands { const RELEASE_SEMVER = ['patch', 'minor', 'major', 'prepatch', 'preminor', 'premajor', 'prerelease', 'select']; const RELEASE_SEMVER_STR = RELEASE_SEMVER.join(', '); -export class ScriptsGeneratorCommand { +export class MainCommands { static load(program: CommanderStatic['program'], configFile: IMrepoConfigFile) { const packagesNames = configFile.workspace.packages.map((p) => p.name); const packagesNamesStr = packagesNames.join(', '); diff --git a/src/constants.ts b/src/constants.ts index faff210..3dbd665 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,5 +1,6 @@ export const CMD = 'mrepo'; export const CONFIG_FILE_NAME = `${CMD}.json`; +export const DIGEST_CONFIG_FILE_NAME = `${CMD}-digest.json`; export const PACKAGE_GENERATOR_PASSED_OPTIONS_ENV_VAR = 'PACKAGE_GENERATOR_PASSED_OPTIONS'; export enum LERNA_PACKAGES_VERSIONING { independent = 'independent', @@ -17,3 +18,12 @@ export enum GITHUB_NODE_AUTH_TOKEN_NAME { github = 'GITHUB_TOKEN', npm = 'NPM_TOKEN', } +export enum DIGEST_MODE { + LINK = 'ln', + INSTALL = 'install', +} +export enum DIGEST_MODE_DISPLAY { + 'ln' = 'symlink', + 'install' = 'install', +} +export const DIGEST_MODE_LIST = Object.values(DIGEST_MODE); diff --git a/src/interfaces/index.ts b/src/interfaces/index.ts index 1080ac4..38482f9 100644 --- a/src/interfaces/index.ts +++ b/src/interfaces/index.ts @@ -1 +1,2 @@ export * from './mrepo-config-file.interface'; +export * from './mrepo-digest-config-file.interface'; diff --git a/src/interfaces/mrepo-digest-config-file.interface.ts b/src/interfaces/mrepo-digest-config-file.interface.ts new file mode 100644 index 0000000..0d585ac --- /dev/null +++ b/src/interfaces/mrepo-digest-config-file.interface.ts @@ -0,0 +1,31 @@ +import { DIGEST_MODE } from '../constants'; + +export interface IMrepoDigestConfigFilePath { + name: string; + path: string; +} + +export interface IMrepoDigestConfigFileMrepoTarget { + name: string; + packages?: string[]; + noDefaultPackages?: boolean; + mode?: DIGEST_MODE; +} + +export interface IMrepoDigestConfigFileMrepo { + name: string; + defaultPackages?: string[]; + targets?: IMrepoDigestConfigFileMrepoTarget[]; +} + +export interface IMrepoDigestConfigFileTarget { + name: string; + installExec: string; +} + +export interface IMrepoDigestConfigFile { + paths: IMrepoDigestConfigFilePath[]; + mrepos: IMrepoDigestConfigFileMrepo[]; + targets: IMrepoDigestConfigFileTarget[]; + mode?: DIGEST_MODE; +} diff --git a/src/utils/config-file.loader.ts b/src/utils/config-file.loader.ts index 7f8a1ff..5a8da6f 100644 --- a/src/utils/config-file.loader.ts +++ b/src/utils/config-file.loader.ts @@ -7,8 +7,8 @@ import { CONFIG_FILE_NAME } from '../constants'; import { IMrepoConfigFile } from '../interfaces'; import { logger } from '../utils'; -export function loadConfigFile(): IMrepoConfigFile { - const configFilePath = join(process.cwd(), `./${CONFIG_FILE_NAME}`); +export function loadConfigFile(path?: string): IMrepoConfigFile { + const configFilePath = join(path ? path : process.cwd(), `./${CONFIG_FILE_NAME}`); return safeRequire(configFilePath); } @@ -32,6 +32,7 @@ export function validateConfigFile(configFile: IMrepoConfigFile) { } const ajv = new Ajv(); + const schema = { type: 'object', properties: { diff --git a/src/utils/digest-config-file.loader.ts b/src/utils/digest-config-file.loader.ts new file mode 100644 index 0000000..0f7d70d --- /dev/null +++ b/src/utils/digest-config-file.loader.ts @@ -0,0 +1,118 @@ +import { safeRequire } from '@nestled/util'; +import Ajv from 'ajv'; +import * as color from 'chalk'; +import * as findConfig from 'find-config'; +import * as emoji from 'node-emoji'; +import { join } from 'path'; +import { DIGEST_CONFIG_FILE_NAME, DIGEST_MODE, DIGEST_MODE_LIST } from '../constants'; +import { IMrepoDigestConfigFile } from '../interfaces'; +import { logger } from '../utils'; + +export function loadDigestConfigFile(configFileName = DIGEST_CONFIG_FILE_NAME): IMrepoDigestConfigFile { + const path = findConfig(configFileName); + + if (!path) { + const msg = `${emoji.get(':flushed:')} ${configFileName} hasn't been found`; + logger.error('cli', msg); + process.exit(1); + } + + const loadedConfigFile = safeRequire(path); + + validateDigestConfigFile(loadedConfigFile, configFileName); + + return loadedConfigFile; +} + +function validateDigestConfigFile(loadedConfigFile: IMrepoDigestConfigFile, configFileName: string): void { + const ajv = new Ajv(); + + const schema = { + type: 'object', + properties: { + mode: { + type: 'string', + pattern: DIGEST_MODE_LIST.join('|'), + }, + paths: { + type: 'array', + minItems: 2, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + path: { type: 'string' }, + }, + additionalProperties: false, + required: ['name', 'path'], + }, + }, + mrepos: { + type: 'array', + minItems: 1, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + targets: { + type: 'array', + minItems: 0, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + packages: { + type: 'array', + minItems: 0, + items: { type: 'string' }, + }, + noDefaultPackages: { type: 'boolean' }, + mode: { + type: 'string', + pattern: DIGEST_MODE_LIST.join('|'), + }, + }, + additionalProperties: false, + required: ['name'], + }, + }, + defaultPackages: { + type: 'array', + minItems: 0, + items: { type: 'string' }, + }, + }, + additionalProperties: false, + required: ['name'], + }, + }, + targets: { + type: 'array', + minItems: 1, + items: { + type: 'object', + properties: { + name: { type: 'string' }, + installExec: { type: 'string' }, + }, + additionalProperties: false, + required: ['name', 'installExec'], + }, + }, + }, + additionalProperties: false, + required: ['paths', 'mrepos', 'targets'], + }; + + const validate = ajv.compile(schema); + const isValid = validate(loadedConfigFile); + + if (!isValid) { + const { dataPath, message } = validate.errors[0]; + const msg1 = `${emoji.get(':flushed:')} Invalid ${configFileName}`; + const msg2 = `${color.bold.red(dataPath)} -> ${color.bold.red(message)}`; + logger.error('cli', msg1); + logger.error('cli', msg2); + process.exit(1); + } +} diff --git a/src/utils/index.ts b/src/utils/index.ts index b2064e2..a9dad32 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,5 @@ export * from './config-file.loader'; export * from './create-packages-npmrc.util'; +export * from './digest-config-file.loader'; export * from './logger'; export * from './package-json-version.loader';